it 지식/백준 문제 중 자잘한 문법 정리
백준 - 파이썬 1032 명령프롬프트
곰종
2023. 1. 18. 21:59
문제 내용

문제 예시

내가 푼 방법
입력받은 문장은 길이가 다 같다는 점에서 하나 하나의 인덱스만 다르기에 처음 리스트를 입력받고, 2번째 줄부터는 첫 번째 입력받은 리스트와 비교하면서 다른 인덱스가 있다면 그 자리를 "?" 로 수정하며 풀기로 하였다.
|
1
2
3
4
5
6
7
8
9
10
11
|
n = int(input())
first_list = list(input())
for i in range(n-1):
cmd_list = list(input())
for j in range(len(first_list)):
if first_list[j] != cmd_list[j]:
first_list[j] = "?"
print(''.join(first_list))
|
cs |
풀이
first_list 를 선언하여 첫 번째 들어오는 리스트를 입력받는다.
아래 for문에서 반복횟수를 range(n-1)을 한 이유는 n개를 입력받지만 첫 번째 줄은 이미 입력받았기 때문에 n-1을 한다.
(그리고 여기서 for i in range(n-1)을 했는데 i는 _로 하는게 맞는 것 같다)
이중포문을 사용하여 if문을 사용하여 첫 번째 입력받은 문자열과 그 다음 받는 문자열을 검사한다. 이때 검사(!=)는 문자열의 길이만큼 반복하고, 만약 인덱스의 요소가 다를 경우 그 자리에 "?"로 바꿔준다.
중요! 여기서 그냥 print(first_list)를 하게되면
['h', 'e', 'l', 'l', 'o'] 이런식으로 리스트 그 자체가 출력이 되는데
요소만 출력하기 위해 join으로 문자열 변환 후 묶어서 출력했다.
join 함수는 리스트에 특정 구분자를 추가해서 문자열로 반환해주는 함수이다.
여기서 특정 구분자란 '-'.join(array) 를 하게 되면

이런식으로 특정 구분자를 추가해서 문자열로 반환을 해준다.
주요 문법 : for, if, .join