데이터 코딩랩
백준 9086 파이썬 문자 본문
https://www.acmicpc.net/problem/9086
📄 실전 문제 접근 체크리스트
1초, 128MB
1단계: 문제 파악
☑️ 문제 요구사항 한 줄로 정리
: 문자열의 첫글자와 마지막 글자 출력
추가)
☑️ 예제 입력/출력 확인
: 입력: 첫줄 : 테스트 케이스 갯수 T(1<=T<=10) , 각 테스트 케이스는 하나의 문자열, 문자열은 A-Z 대문자, 공백없음 길이는 <1000
: 출력 : 대문자
: 단순 출력 문제 같음 , 하지만 다음줄에 출력해야함
추가)
입력:
출력: 각 케이스마다 한 줄씩 출력, 줄바꿈 처리 실수하지 않기!
2단계: 입력 범위 → 시간복잡도 판단
입력 크기 (N) 적정 알고리즘 복잡도
☑️ 입력 크기 체크 후 -> 내가 쓸 수 있는 알고리즘 선별
N ≤ 1,000 지만 첫번째,마지막 문자열만 찾아서 단순 출력이니까 O(1) 라고 생각함
입력받는법
맨 첫줄은 테스트케이스 정수값, 두번째 줄부터 T개의 문자열
추가)
✔️ 시간복잡도: O(T), 문자열 길이는 상관 없음, 인덱싱은 O(1)
✔️ 메모리 : 최대 10줄 X 1000자 = 10,000자 => 안전
3단계: 알고리즘 유형 선택
☑️ 문자열 처리, 인덱싱 S[0,-1]
추가)
✔️ 추가사항 없음
4단계: 자료구조 & 흐름 정리
☑️ 어떤 자료구조를 쓸까?
→ 문자열 그대로 처리이지 않을까
☑️ 함수 나눌 필요 있는가?
→ 없음
☑️ 조건 분기 많을까? 시뮬레이션 필요한가?
→ 없음
추가)
✔️흐름 : input → 반복문 → 문자열 인덱싱 → 출력
5단계: 구현 전 체크
☑️ 입출력 방식은?
→ 테스트 케이슨느 정수니까 int(input()) 로 입력받고 , 문자열은 반복문으로 입력받나
☑️ 예외 상황은 어떤 게 있을까? (빈 입력, 중복 등)
→
☑️ 시간 초과 가능성은?
→
추가)
✔️ 입출력: 예외 상황은 거의 없음
→ 문자열 길이 최소 1 보장되어 있음 (1 ≤ |S| ≤ 1000)
✔️ 시간/메모리 초과 가능성 전혀 없음
→ 문자열 인덱싱, 반복문 10번
6단계: 제출 전 체크리스트
☑️ 예제 출력 전부 통과했는가?
☑️ 문제 조건 중 빠뜨린 거 없는가?
☑️ 반복문/조건문 이상한 부분 없는가?
☑️ 시간/메모리 초과 가능성 없나?
추가)
내 답
T = int(input())
for i in range(T):
S = input()
print(S[0],S[-1],sep='')
요약:
문제 → 입력 크기 → 시간복잡도 판단 → 알고리즘 선택 → 자료구조 선택 → 구현
✨실수 포인트는 줄바꿈 처리 관련
❌ 1. 출력 안에 공백이 들어감
print(S[0], S[-1]) # ← 공백 있음 (기본 sep=' ')
🔻 출력 예시
A E
👉 정답은 AE 인데 공백이 들어가서 오답 처리됨
해결법:
print(S[0], S[-1], sep='')
❌ 2. 한 줄에 여러 테스트 케이스 출력 (줄바꿈 없음)
for i in range(T):
S = input()
print(S[0] + S[-1], end='') # ← 줄바꿈 안 해서 모든 결과가 한 줄에 나옴
🔻 출력 예시
AEOOAB
해결법:
print(S[0] + S[-1]) # 기본적으로 print는 줄바꿈을 포함함
'Algorithm > 백준' 카테고리의 다른 글
백준 11720 파이썬 숫자의 합 (0) | 2025.04.15 |
---|---|
백준 11654 파이 아스키코드 (0) | 2025.04.15 |
백준 2743 파이썬 단어 길이재기 (0) | 2025.04.15 |
백준 27866 파이썬 문자와 문자열 (0) | 2025.04.15 |
백준 1406 파이썬 에디터 (0) | 2025.03.26 |