✨ 4 Week - Python Coding Study
안녕하세요. hoyeon입니다.
본 포스팅은 <2024.09.23 ~ 2024.12.09> 기간의 코딩 스터디 4주차 학습 내용을 기록했습니다.
CodeHive Study 4주차 진행 (2024.10.14)
🗓️ 학습 주제
- K-MOOC의 ‘파이썬 프로그래밍’ 강의 수강
- 학습한 강의의 내용을 팀원과 공유하고, 각자가 이해한 내용을 발표하며 2차 복습 진행
- 모듈 & 라이브러리 관련 백준(Baekjoon) 알고리즘 문제 풀이 및 코드 공유
- 간단한 발표 보고서 작성 & 팀원의 알고리즘 문제 풀이법 학습
📝 baekjoon 알고리즘 문제 풀이
2750 수 정렬하기 (브론즈 Ⅱ)
문제:
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력: 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력: 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력: 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력: 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
📝 풀이 코드
n = int(input())
number = []
for i in range(n):
number.append(int(input()))
for j in sorted(number):
print(j)
🔍 문제 분석:
- 오름차순 정렬
- 입력으로는 첫 번째 줄에 수의 개수 𝑛개가 주어진다.
🔍 해결 전략:
- 입력받은 정수를 리스트에 저장한다.
- sorted() 함수를 사용해 리스트를 오름차순으로 정렬한다.
- 정렬된 결과를 하나씩 출력한다.
1259 팰린드롬수 (브론즈I)
문제
어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.
수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다.
121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다.
또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.
---
입력:입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다.
입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
출력: 각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.
수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다.
121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다.
또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.
---
입력:입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다.
입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
출력: 각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.
📝 풀이 코드
while True:
num = input()
if num == "0":
break
if num == num[::-1]:
print("yes")
else:
print("no")
🔍 문제 분석:
숫자는 문자열로 입력되며, 입력값이 “0”이면 프로그램을 종료한다.
입력된 숫자를 뒤집어서 원래 숫자와 비교해 동일하면 “yes”, 다르면 “no”를 출력한다.
🔍 해결 전략:
문자열과 그 문자열을 뒤집은 값을 비교해 두 값이 같으면 팰린드롬이다.
뒤집기 비교([::-1])를 통해 팰린드롬 여부를 검사한다.
10814 나이순 정렬 (실버V)`
문제
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다.
이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.
입력: 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)
둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다.
나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다.
입력은 가입한 순서로 주어진다.
출력: 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다.
이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.
입력: 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)
둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다.
나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다.
입력은 가입한 순서로 주어진다.
출력: 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다.
📝 풀이 코드
n = int(input())
information = []
for _ in range(n):
age,name = input().split()
information.append([int(age),name])
for i in sorted(information, key=lambda a: a[0]): print(i[0],i[1])
🔍 문제 분석:
사람들의 나이와 이름이 주어지며, 이를 나이순으로 정렬해야 한다.
입력값은 나이와 이름이 공백으로 구분되어 주어지며, 여러 줄로 입력된다.
🔍 해결 전략:
입력값을 받아 나이와 이름을 리스트로 저장한다.
sorted 함수의 key 매개변수에 나이를 기준으로 정렬하도록 한다.
돌아가기: 2024 하반기 Python Coding Study