Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 2711번 - '오타맨 고창영' (PYTHON 풀이) 본문
문제:

테스트 케이스 수를 입력받고 해당 케이스별로 오타의 위치와 문자열을 입력받는다. 그 다음 오타의 위치에 해당하는 내용을 지우고 다시 수정된 문자열을 출력하면 된다.
풀이:
N = int(input())
for i in range(N):
conn1, conn2 = map(str, input().split())
print(conn2[:int(conn1)-1]+conn2[int(conn1):])
N에 테스트 케이스 개수를 입력받고, 해당 수만큼 반복문을 돈다. 그 다음 conn1에는 문자를 지울 위치, conn2에는 문자열을 입력받아서 저장한다.
해당 문제는 슬라이싱을 활용해서 바로 출력하면 되는데, 입력받은 conn1은 1을 시작으로 위치를 입력받는 것이지만, 원래 파이썬 인덱스는 0부터 시작이므로 1을 빼주어야 한다. 그 다음 삭제하고자 하는 위치보다 -1인 위치부터 출력해줘야 하므로 원래대로라면 -2의 구간을 처음 출력해야 하지만, 슬라이싱 자체가 [start:end-1]이기 때문에 -2가 아닌 -1만 해줘도 된다.
즉, 여기까지 과정을 거치면 입력값이 3 APPLE 일 때, AP가 출력될 것이다.
그 다음 문자열 한 자리를 삭제한 다음 바로 뒷부분을 그대로 출력해줘야 하므로 삭제할 문자열 자릿수+1부터 끝까지를 의미하는 conn[int(conn1):]을 작성하면 된다. (마찬가지로 인덱스는 0부터 시작이므로 +1을 해줄 필요가 없이 입력받은 대로 인덱스를 지정해주면 됨, 입력값 자체가 +1이기 때문)
추가로, conn1 변수를 int로 변환한 아유는 최초 입력받을 때 str(문자열)형태로 받았기 때문에 인덱싱을 위해서 숫자형태로 바꾼 것이다. 여기까지의 과정을 거치면 문제에서 요구하는 조건을 충족할 수 있게 된다.
'CODING 💻' 카테고리의 다른 글
| 백준 14916번 - '거스름돈' (PYTHON 풀이 (0) | 2026.04.19 |
|---|---|
| 백준 2789번 - '유학 금지' (PYTHON 풀이) (1) | 2026.04.18 |
| 백준 11024번 - '더하기 4' (PYTHON 풀이) (0) | 2026.04.16 |
| 백준 5523번 - '경기 결과' (PYTHON 풀이) (1) | 2026.04.15 |
| 백준 25191번 - '치킨댄스를 추는 곰곰이를 본 임스' (PYTHON 풀이) (1) | 2026.04.14 |
