차곡차곡..!
- 나이순 정렬
https://www.acmicpc.net/problem/10814
나이와 이름을 받을 때 나이순으로 정렬! lamda를 이용해서 정렬 기준을 세워준다.
n = int(input())
member_lst = []
for i in range(n):
age, name = map(str, input().split())
age = int(age)
member_lst.append((age, name))
member_lst.sort(key = lambda x : x[0]) ## (age, name)에서 age만 비교
for i in member_lst:
print(i[0], i[1])
- 시리얼 번호
https://www.acmicpc.net/problem/1431
여러 기준으로 정렬을 해야한다. 이 문제 또한 lamda식을 이용하여 정렬 우선순위를 만들어준다.
n = int(input())
def sum_num(inputs):
result = 0
for i in inputs:
if i.isdigit():
result+=int(i)
return result
arr = []
for i in range(n):
a = input()
arr.append(a)
arr.sort(key = lambda x:(len(x), sum_num(x), x))
for i in arr:
print(i)
- 파도반 수열
https://www.acmicpc.net/problem/9461
정말 어떻게 풀어야할지 모르겠을 때는 규칙이 있는지 잘 찾아봐야한다. 이 문제는 6번째부터 규칙이 있었다.1~5번째는 먼저 입력하고 6번째부터 규칙성을 찾아 입력해주자.
t = int(input())
li = [1,1,1,2,2]
for i in range(5, 100):
li.append(li[i-1]+li[i-5])
for _ in range(t):
n = int(input())
print(li[n-1])
- 2*n타일링
https://www.acmicpc.net/problem/11726
이 문제 또한 규칙성을 찾아서 풀어여한다..!
n = int(input())
dp = [0 for _ in range(n+1)]
if n <= 3 : print(n)
else :
dp[1] = 1
dp[2] = 2
for i in range(3, n+1):
dp[i] = dp[i-1] + dp[i-2]
print(dp[i]%10007)
- 2×n 타일링 2
https://www.acmicpc.net/problem/11727
import sys
input = sys.stdin.readline
n = int(input())
dp = [0] * 1001
# 초기값 지정
dp[0] = 1
dp[1] = 1
# 점화식에 따른 경우의 수 계산
for i in range(2, n+1):
dp[i] = dp[i-1] + 2 * dp[i-2]
print(dp[n]%10007)
저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!