링크 : https://www.acmicpc.net/problem/2870
2870번: 수학숙제
종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차
www.acmicpc.net
- 문제
- 소요시간: 32분 10초
- 설계하기(접근방법)
1. 입력받기
문자열을 입력받는다
2. 구현하기
문자열을 기준으로 숫자를 구분해준다
숫자가 연속될 때까지 temp 리스트에 append해주고
문자열을 만나거나 문자열이 끝나는 경우
앞의 0을 제거하고 join을 통해 temp 리스트내 원소를
숫자 리스트에 넣어준다
리스트의 요소들을 int로 변환해준 후
리스트를 오름차순 정렬해준다
3. 출력하기
리스트를 출력한다
- 코드(출력)
from string import ascii_lowercase
n = int(input())
number_list = []
for i in range(n):
letter = input()
start = 0
num = []
for j in range(len(letter)):
if letter[j] in ascii_lowercase:
if start == 1:
while num[0] == '0' and len(num) > 1:
num.pop(0)
number_list.append(''.join(num))
num = []
start = 0
else:
start = 1
num.append(letter[j])
if j == len(letter) - 1:
while num[0] == '0' and len(num) > 1:
num.pop(0)
number_list.append(''.join(num))
num = []
number_list = list(map(int, number_list))
number_list.sort()
for i in number_list:
print(i)
- 얻어갈 부분
1. 디버깅 할 때 잘못해서 케이스를 다 뒤집었다. 디버깅 할 때 필요한 요구사항을 적어보면서 해보자
'알고리즘(백준)' 카테고리의 다른 글
[알고리즘/문자열] 20920번 : 영단어 암기는 괴로워 - python (0) | 2024.01.21 |
---|---|
[알고리즘/문자열] 1032번 : 명령 프롬프트 - python (1) | 2024.01.21 |
[알고리즘/문자열] 11655번 : ROT13 - python (0) | 2024.01.20 |
[알고리즘/문자열] 1159번 : 농구 경기 - python (0) | 2024.01.19 |
[알고리즘/수학] 3474번 : 교수가 된 현우 - python (1) | 2024.01.16 |