STUDY/Algorithm

[백준] 1032 명령프롬프트

sinawi95 2021. 2. 3. 22:04
728x90

www.acmicpc.net/problem/1032

 

1032번: 명령 프롬프트

첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은

www.acmicpc.net

하... 정말 오래걸렸다.

어제부터 계속 시도했고 10번이나 제출했다. 머리로는 쉬웠는데 구현은 쉽지가 않았다.


N = int(input())
files = []
for _ in range(N):
    tmp = []
    tmp.extend(input())
    files.append(tmp)
len_file = len(files[-1])

result = []
for j in range(len_file):
    tmp = set()
    for i in range(N):
        tmp.add(files[i].pop())
        
    if len(tmp)==1:
        result.append(tmp.pop())
    else:
        result.append('?')
print(''.join(reversed(result)))

같은 자리의 문자가 모두 같은 경우 그대로 출력하고 아닌경우 물음표를 출력하는 문제였다.

그래서 문자 하나씩 받았고 각자리를 비교했다.

비교하는 방법은 set을 사용했는데, set에 넣었을때 크기가 1이라면 같은 문자라고 판단할수 있기 때문이다.

뒤에서부터 하나씩 뽑아가면서 비교했고, 마지막에 reverse를 해서 출력했다.


왜 그렇게 틀렸을까 생각해보니, 첫번째는 문제를 제대로 읽지않았기 때문이고, 두번째는 이해한것처럼 대충 넘겨 짚었기 때문이다.

앞으로는 안풀리는 문제면 머리속에서 지우고 처음부터 다시하는게 더 나을것 같다.

아니면 이번주는 계속 머리가 안돌아가는 것일지도 모른다.

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 2480 주사위 세개  (0) 2021.02.03
[백준] 2960 에라토스테네스의 체  (0) 2021.02.03
[백준] 1268. 임시반장 구하기  (0) 2021.02.02
[백준] 2941 크로아티아 알파벳  (0) 2021.02.01
[백준] 10809 알파벳 찾기  (0) 2021.02.01