😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[1032] 명령 프롬프트 / 파이썬 (이중반복문, join함수)

또방91 2022. 1. 22. 01:18
728x90

 

 

 

 

 

✏️ 문제 링크

문제 링크: https://www.acmicpc.net/problem/1032

 

1032번: 명령 프롬프트

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

www.acmicpc.net


여러 번 실패....

아래처럼 얍삽이처럼 하려다가도 이것도 실패

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#===============실패!
t=int(input())
if t==1print(input())
else:
    a=[]
    for i in range(t):
        file = input()
        a.append(file)
    
    cnt=0
    sentence="a[0][i]"
    for i in range(t-1):
        sentence+="=="
        cnt+=1
        sentence+="a["+str(cnt)+"][i]"
    print(sentence)    
        
    result=""    
    for i in range(len(a[0])):
        #0부터 len(n)-1까지 일치하는지
        if sentence: 
            result=result+(a[0][i])
        else:
            result=result+"?"
            
    print(result)
cs

 


정답은 ??

1
2
3
4
5
6
7
8
9
10
11
12
#==============성공!
# 1/2/3이 있다면,
# 1과2를 먼저 비교 그다음에 그 결과랑 3과 비교
 
t=int(input())
 
before = list(input())
for i in range(t-1):
    after = list(input())
    for j in range(len(before)):
        if before[j] != after[j]: before[j]="?"
print("".join(before))
cs

💯 풀이 과정

위에 주석이 있듯이 3개를 비교해야할 때, 1과 2를 비교하고 그 결과와 3을 비교하는 방법으로

그리고 문자열 하나하나를 비교해야하니까, 받을 때 리스트 형식으로 받아서 list(input())

각 인덱스마다 동일 한지 비교한다. 다르면 "?"로 처리한다.

마지막으로 리스트 형태로 되어있으니, join으로 묶어준다.


😎오늘의 한줄평

: 왠지 위에처럼 이중반복문 방법말고도 다른 방법이 있을 것 같은데 ㅠㅠㅠ 생각이 안난다.

 

 

 

 

 

728x90