데이터 코딩랩
백준 27866 파이썬 문자와 문자열 본문
https://www.acmicpc.net/problem/27866
📄 실전 문제 접근 체크리스트
1단계: 문제 파악
☑️ 문제 요구사항 한 줄로 정리
: i번째 글자 출력하기
추가) 주어진 문자열의 i번째 글자를 출력하라 (1-indexed)
☑️ 예제 입력/출력 확인
: 입력: 소문자, 대문자 (S<1000)
: 출력 : 소문자, 대문자
추가)
입력: 문자열 S, 정수 i
출력: 문자열 S의 i번째 글자 1개
단순 출력 문제
2단계: 입력 범위 → 시간복잡도 판단
입력 크기 (N) 적정 알고리즘 복잡도
☑️ 입력 크기 체크 후 -> 내가 쓸 수 있는 알고리즘 선별
N ≤ 1,000 O(N²) 가능 이거인가요?
입력받는법
두줄 입력이고, 첫째줄은 리스트로 문자열을 받고, 둘째줄에 정수를 받는다.
✔️ 시간복잡도: O(1)
✔️ 접근 알고리즘: 단순 인덱싱 (문자열 슬라이싱)
✔️ 인덱싱 1번 이니까 O(1) 으로 처리 가능
3단계: 알고리즘 유형 선택
☑️ 문자열 처리 , S[i] : 리스트 탐색?
✔️ 파이썬에선 문자열도 인덱싱이 되니까 리스트 변환 없이 바로 S[i-1] 가능
4단계: 자료구조 & 흐름 정리
☑️ 어떤 자료구조를 쓸까?
→ 리스트
☑️ 함수 나눌 필요 있는가?
→ 없음
☑️ 조건 분기 많을까? 시뮬레이션 필요한가?
→ 없음
✔️ 리스트 쓰지 말고 "문자열 그대로 처리"
5단계: 구현 전 체크
☑️ 입출력 방식은? (input(), split(), strip() 주의)
☑️ 예외 상황은 어떤 게 있을까? (빈 입력, 중복 등)
☑️ 시간 초과 가능성은?
✔️ 입출력: input() 2번 쓰면 됨
✔️ 인덱스 주의: 입력은 1부터 시작 → 파이썬은 0부터
✔️ 시간초과 가능성 없음
6단계: 제출 전 체크리스트
☑️ 예제 출력 전부 통과했는가?
☑️ 문제 조건 중 빠뜨린 거 없는가?
☑️ 반복문/조건문 이상한 부분 없는가?
☑️ 시간/메모리 초과 가능성 없나?
요약:
문제 → 입력 크기 → 시간복잡도 판단 → 알고리즘 선택 → 자료구조 선택 → 구현
내 답
S = list(input())
N = int(input())
print(S[N-1])
하지만 S 따로 리스트 처리 할 필요 없었음
최적의 답_
S = input()
N = int(input())
print(S[N - 1])
'Algorithm > 백준' 카테고리의 다른 글
백준 9086 파이썬 문자 (0) | 2025.04.15 |
---|---|
백준 2743 파이썬 단어 길이재기 (0) | 2025.04.15 |
백준 1406 파이썬 에디터 (0) | 2025.03.26 |
백준 1874 파이썬 스택수열 (0) | 2025.03.21 |
백준 9093 파이썬 단어뒤집기 (3) | 2024.09.03 |