취준일대기/코딩테스트준비

[구현] 백준 1023번

곧미남 2025. 3. 20. 15:01

https://www.acmicpc.net/problem/1032

 

[내가 구현한 내용] 결과 통과!


if __name__ == "__main__":

    N = int(input())
    a = []
    for i in range(N):
        a.append(str(input()))

    if N == 1:
        print(a[-1])
       
    else:

        str_length = len(a[0])
        first_text = a[-1]
        second_text = a[-2]
        reference_text = []

        # 첫번째, 두번째 TEXT 비교해서 reference txt 만들고
        for i in range(str_length):
            if first_text[i] == second_text[i]:
                reference_text.append(first_text[i])
            else:
                reference_text.append("?")

        # 나머지 N-2 개의 TEXT랑 reference 비교해서 문자가 다르면 그 자리를 ?로 치환

        for i in range(N-2):
            current_file = a[i]
            for j in range(str_length):
                if current_file[j] == reference_text[j]:
                    continue
                else:
                    reference_text[j] = "?"

        print(''.join(reference_text))

 

 

[개선한 코드]

 

정말 어이 없게도 간단하게 생각해서 풀었으면 되었는데, 나는 왜 저렇게 어렵게 풀었을까..

 

아직 코테에 대한 숙련도가 떨어져서 그런것 같다.

 

if __name__ == "__main__":

    # 쉽게 생각해야한다! 첫번째는 그냥 받아오고 두번째부터 input으로 데이터 받아와서 처리!
    N = int(input())
    first_text = list(str(input()))
   
    for i in range(N-1):
        next_text = str(input())
        for j in range(len(first_text)):
            if first_text[j] == next_text[j]:
                continue
            else:
                first_text[j] = "?"

    print("".join(first_text))
반응형