편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.03.16

    파이썬 순차탐색으로 조건에맞는 위치를 찾아내려면???


    f=open('data.txt', mode='r', encoding='utf-8')
    lines = f.readlines()
    
    print(type(lines))
    print(lines)
    print(lines[1])
    
    start = int(input("시작 회차 입력: "))
    last = int(input("마지막 회차 입력: "))
    
    lst=[]
    for i in range(start,last+1):
        lst.append(str(i)+'\n')
    print("찾는 회차의 합",len(lst))
    lst.reverse()
    print(lst)
    print(lines)
    print(lst[0])
    print(lines[0])
    
    list_group=list(set(lst).intersection(lines))
    list_group.sort()
    print("조회한 구간",list_group)
    print("조회한 구간 길이",len(list_group))
    
    index_num=[]
    for i in list_group:
        for d in lines:
            if d == i:
                index_num.append(lines.index(d))
                continue
    index_num.sort()
    print(index_num)
    
    index_odd_oven=[]
    for i in index_num:
        index_odd_oven.append(i+1)
    
    print(index_odd_oven)
    
    odd_count = 0
    even_count = 0
    for i in index_odd_oven:
        if lines[i] == "짝\n":
            even_count+=1
        else:
            odd_count+=1
    
    print("조회한 홀 갯수: ", odd_count)
    print("조회한 짝 갯수: ", even_count)
    print("총 합계: ", odd_count+even_count)
    
    도와주신 덕분에 해결되었습니다....
    
  • 프로필 엽토군님의 편집
    날짜2020.03.15

    파이썬 순차탐색으로 조건에맞는 위치를 찾아내려면???


    lines=['1', '홀', '2', '짝', '3', '짝', '4', '짝', '5', '홀', '6', '홀','7', '짝', '8', '짝', '9', '짝', '10', '짝', '11', '홀', '12', '홀', '13', '홀', '14', '짝', '15', '홀', '16', '홀', '17', '짝', '18', '홀', '19','홀', '20', '홀']
    
    start = int(input("처음 수 입력: "))                    #예  3  입력
    last = int(input("마지막 수 입력: "))                    #예  7 입력
    
    #입력한 크기만큼 리스트에 담기
    lst=[]
    for i in range(start,last+1):
        lst.append(str(i)+'\n')                            # ['3','4','5','6','7']                 
    lst.reverse()
    
    
    # 두개의 리스트간 동일한 요소찾기
    list_group=list(set(lst).intersection(lines))    # lines리스트와 입력한 lst['3','4','5','6','7'] 리스트 비교
    list_group.sort()
    print("동일한 요소",list_group)
    
    
    #lines에 동일한요소 인덱스찾기             #동일한 요소의 index를 찾아 저장 index_num=[4,6,8,10,12]
    index_num=[]
    for i in list_group:
        for d in lines:
            if d == i:
                index_num.append(lines.index(d))
    
    index_num.sort()
    print(index_num)
    
    
    # 홀,짝 인덱스 찾기  
    index_a_b=[]
    for i in index_num:
        index_a_b.append(i+1)                  # 홀,짝 의 인덱스찾아 저장 [5,7,9,11,13]
    
    print(index_a_b)
    
    
    # 홀,짝 개수 분리
    a_count = 0
    b_count = 0
    for i in index_a_b:
        if lines[i] == "짝":
            a_count+=1
        else:
            b_count+=1
    
    print("조회한 짝 갯수: ", a_count)          # 짝 == 3
    print("조회한 홀 갯수: ", b_count)          # 홀 == 2
    
    #구간길이
    total_count=a_count+b_count 
    print("조회한 홀,짝  합계: ", total_count)   #홀,짝 합계 == 5
    
    f.close()
    

    사용자가 찾은 조회하고싶은 구간에 위치한 홀,짝 개수를 찾아내고 다시 lines[0]부터 시작해 짝3,홀 2개가 위치를 출력해주고 없다면 다시 lines[1]부터 순차적으로시작해 홀짝 갯수가 일치하는 모든 위치를 찾는건데 어떻게 코드를 짜야할까요??

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.03.15

    파이썬 순차탐색으로 조건에맞는 위치를 찾아내려면???


    lines=['1', '홀', '2', '짝', '3', '짝', '4', '짝', '5', '홀', '6', '홀','7', '짝', '8', '짝', '9', '짝', '10', '짝', '11', '홀', '12', '홀', '13', '홀', '14', '짝', '15', '홀', '16', '홀', '17', '짝', '18', '홀', '19','홀', '20', '홀']

    start = int(input("처음 수 입력: ")) #예 3 입력 last = int(input("마지막 수 입력: ")) #예 7 입력

    입력한 크기만큼 리스트에 담기

    lst=[] for i in range(start,last+1): lst.append(str(i)+'\n') # ['3','4','5','6','7']
    lst.reverse()

    두개의 리스트간 동일한 요소찾기

    list_group=list(set(lst).intersection(lines)) # lines리스트와 입력한 lst['3','4','5','6','7'] 리스트 비교 list_group.sort() print("동일한 요소",list_group)

    lines에 동일한요소 인덱스찾기 #동일한 요소의 index를 찾아 저장 index_num=[4,6,8,10,12]

    index_num=[] for i in list_group: for d in lines: if d == i: index_num.append(lines.index(d))

    index_num.sort() print(index_num)

    홀,짝 인덱스 찾기

    index_a_b=[] for i in index_num: index_a_b.append(i+1) # 홀,짝 의 인덱스찾아 저장 [5,7,9,11,13]

    print(index_a_b)

    홀,짝 개수 분리

    a_count = 0 b_count = 0 for i in index_a_b: if lines[i] == "짝": a_count+=1 else: b_count+=1

    print("조회한 짝 갯수: ", a_count) # 짝 == 3 print("조회한 홀 갯수: ", b_count) # 홀 == 2

    구간길이

    total_count=a_count+b_count print("조회한 홀,짝 합계: ", total_count) #홀,짝 합계 == 5

    f.close()

    사용자가 찾은 조회하고싶은 구간에 위치한 홀,짝 개수를 찾아내고 다시 lines[0] 부터 시작해 짝3,홀 2개가 위치를 출력해주고 없다면 다시 lines[1]부터 순차적으로시작해 홀짝 갯수가 일치하는 모든 위치를 찾는건데 어떻게 코드를 짜야할까요??