데이터 코딩랩

백준 9086 파이썬 문자 본문

Algorithm/백준

백준 9086 파이썬 문자

researcher 틴틴 2025. 4. 15. 14:31

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는 줄바꿈을 포함함