본문 바로가기
Coding Test (코딩 테스트)

코딩테스트 15일차(2025.01.31) - 백준27866번(문자와 문자열)

by BioLearner 2025. 1. 31.
반응형

 풀이

S의 i번째 글자 출력

첫째줄 문자열

둘째줄 숫자

S = input()
i = int(input())

print(S[i - 1])

 

문자열을 입력받고 숫자를 입력받은 후, [] 인덱싱을 활용하여 문제를 간단하게 해결했다.

 

문자열도 리스트처럼 인덱스를 이용해 접근할 수 있기 때문에, []를 사용하여 특정 위치의 값을 쉽게 얻을 수 있다. 이 방식은 문제를 더 효율적으로 풀 수 있게 해주었다.

결과: 정답

또 다른 풀이

arr = list(input())
i = int(input())
print(arr[i-1])
 

[백준] 27866번 문자와 문자열 / Python

백준 알고리즘 문자열: 27866번 문자와 문자열 | 문자열을 한 글자씩 끊어서 리스트에 넣기

velog.io

이 방법은 문자열을 리스트 형태로 변환한 후, 인덱싱을 사용하여 문제를 해결하는 방식이다. 리스트처럼 다룰 수 있기 때문에 각 문자에 쉽게 접근할 수 있다.

 

고찰

list로 만들어 푸는 것과 굳이 list로 만들지 않고 파이썬의 문자열의 특성을 이용한 방법 중 무엇이 더 시간 복잡도가 적을까?

인덱싱에 있어서는 문자열과 리스트 모두 O(1) 시간 복잡도를 가진다. 하지만 리스트로 변환한 후 인덱싱하는 방법은 O(n)의 시간이 소요되기에 시간복잡도 부분에서 문자열을 그대로 인덱싱하는 것이 효율적이다. 

반응형