Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 자바
- 프로젝트
- 코딩테스트
- 스프링
- 스레드동기화
- ChatGPT
- Java
- API명세서
- 재귀적사고
- 날씨API
- 참조변수타입변환
- SQL
- 동전교환알고리즘
- staging_area
- SQ3R
- 배열탐색
- string메서드
- 네이티브애플리케이션
- 제너릭메서드
- 프로그래머스
- 파일사용권한
- 99클럽
- 성장형마인드셋
- 향상된for문
- 백준
- 루트사용자
- 4A피드백
- Spring
- openapi
- API
Archives
- Today
- Total
개발 공부용
[백준] 20291 - 파일 정리 본문
문제 출처:
문제파일을 확장자 별로 정리해서 몇 개씩 있는지 알려줘.확장자들을 사전 순으로 정렬해줘.
입력
- 첫 번째 줄에 바탕화면에 있는 파일의 개수 N이 주어진다. (1<=N<=50,000)
- 둘째 줄부터 N개의 줄에 바탕화면에 있는 파일의 이름이 주어진다.
- 파일의 이름은 알파벳 소문자와 점으로만 구성되어 있다.
- 점은 정확히 한 번 등장하며 파일 이름의 첫 글자 또는 마지막 글자로 오지 않는다.
- 3<=각 파일의 이름의 길이<=100
출력
- 확장자의 이름과 확장자 파일의 개수를 한 줄에 하나씩 출력한다.
- 확장자가 여러 개 있는 경우 확장자의 이름의 사전순으로 출력한다.
문제 풀이 방법
- N을 저장한다.
- for문을 N번 돌면서 파일의 이름을 읽는다.
- 이 때 점 이전의 글자와 이후의 글자를 각각 나누어 다른 변수에 저장한다.
- 점 이후의 글자(확장자)를 딕셔너리의 key로 사용하고 해당 확장자를 가진 파일의 개수를 value에 저장한다.
- 파일 확장자 리스트에도 확장자를 저장해준다.
- sort()를 사용하여 파일 확장자 리스트를 정렬하고 사전순으로 출력한다.
작성한 코드
import sys
N = int(sys.stdin.readline().strip()) #1
file_list = {}
file_extension = []
for _ in range(N): #2
name, extension = sys.stdin.readline().strip().split(".") #3
if extension not in file_list.keys(): #4
file_list[extension] = 0
file_list[extension]+=1
file_extension.append(extension) #5
else:
file_list[extension]+=1
file_extension.sort() #6
for extension in file_extension:
print(extension, str(file_list[extension]))
다른 풀이
import sys
N = int(sys.stdin.readline().strip())
file_list = {}
for _ in range(N):
name, extension = sys.stdin.readline().strip().split(".")
file_list[extension] = file_list.get(extension, 0)+1
for extension in sorted(file_list.keys()):
print(extension, str(file_list[extension]))
#참고한 글
#https://velog.io/@almighty5/TIL99%ED%81%B4%EB%9F%BD-%EC%BD%94%ED%85%8C-%EC%8A%A4%ED%84%B0%EB%94%94-20%EC%9D%BC%EC%B0%A8-%EB%B0%B1%EC%A4%80-28107%EB%B2%88Python-9008359r
get을 사용해서 코드를 꽤나 줄일 수 있었던 게 인상적이었다!
코테는 다른 사람 풀이를 많이 봐야 느는 것 같다.
'코딩 테스트 > 99클럽 TIL' 카테고리의 다른 글
[백준] 1524 - 세준세비 (0) | 2025.02.19 |
---|---|
[백준] 18870 - 좌표 압축 (0) | 2025.02.18 |
[백준] 28107 - 회전초밥 (0) | 2025.02.15 |
[백준] 14235 - 크리스마스 선물 (0) | 2025.02.13 |
[Leetcode] 506. Relative Ranks (0) | 2025.02.12 |