백준 알고리즘

알고리즘(algo)/백준

[백준] 2231번 - 분해합

참고: https://www.acmicpc.net/problem/2231 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 분해합은 각 자리수의 합을 의미한다고 하는데, 이는 숫자에 각 자리수를 더한 합이 되는 수를 분해합이라고 하는 것이다. 예제에 나와있는 것처럼 198이라는 수에 각 자리수 1+9+8인 18을 더한 수 216이 198의 분해합이 되는 것이다. import sys input=sys.stdin.readline N=input().rstrip() X=int(N)//2 result=0 while X < int(N): num=list(map(int, str(X))) if(X+sum(num)==int(N)): result=X break else: X+=1 print(result) 생각한 것은 다음과 같다..

알고리즘(algo)/백준

[백준] 2798번 - 블랙잭

참고: https://www.acmicpc.net/problem/2798 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 문제가 굉장히 재밌었는데, 주어진 카드 수 중 3가지 조합이 M이랑 같으면 M을 출력하고, M이랑 같지 않으면 M을 넘지 않는 선에서 가장 큰 수를 출력하면 된다. import sys input = sys.stdin.readline n,m=map(int,input().split()) card=sorted(list(map(int,input().split())), reverse=True) x=0 data=[] for i in range(n-1): if i+2==n: break for j in range(i+2, n): if card[i]+card[i+1]+card[j]==m: x=m elif ..

알고리즘(algo)/백준

[백준] 10870번 - 피보나치 수 5

참고: https://www.acmicpc.net/problem/10870 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 n=17일때까지의 반례를 보여주고 있고, n은 20보다 작거나 같은 자연수 또는 0이라는 조건이 존재한다. 0일때 0, 1일때 1, 2일때 1 ··· 이런식으로 피보나치 수가 나열된다. n=int(input()) num=n a,b,x=0,1,0 while n>1: x=a+b a=b b=x n-=1 if num==1:print(1) elif num=2)이기 때문에 n이 2보다 작으면 n을 바로 리턴하고 그렇지 않으면 재귀를 통해서 더해주는 방법을 진행하면 된다. 화이팅 💪

알고리즘(algo)/백준

[백준] 18870번 - 좌표 압축

참고: https://www.acmicpc.net/problem/18870 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 문제와 예제를 보게 되면, 다음과 같이 이해할 수 있다. 예제 입력 1에서 들어온 숫자를 정렬하게 되면, -10 -9 2 4 4라는 값을 얻게 되는데, 각각의 값에 해당하는 인덱스를 들어온 입력 자리에 새롭게 출력하는 문제이다. import sys ss=sys.stdin.readline N=int(ss()) data=list(map(int,ss().split())) origin=sorted(list(set(data))) for i in range(N):print(origin.index(data[i]), end=' ') 처음에 다음과 같은 코드를 작성했는데, 중복되는 것은 삭제한 이후에 해..

알고리즘(algo)/백준

[백준] 10814번 - 나이순 정렬

참고: https://www.acmicpc.net/problem/10814 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예제를 보면 나이순으로 정렬을 하고, 정렬한 나이가 같으면 들어온 순서대로 입력받은 것대로 출력하면 되는 문제이다. import sys ss=sys.stdin.readline N=int(ss()) data=[ss().rstrip().split() for _ in range(N)] data.sort(key=lambda x:x[0]) for i in range(len(data)):print(*data[i]) 이전 문제와 동일하게 나이만 정렬하여 제출하였는데, 4%에서 틀리는 경험을 할 수 있다. 왜 그런가하고 생각을 해보았더니, data를 입력받는 부분에서 기존에 int형으로 map을 돌리거..

알고리즘(algo)/백준

[백준] 11651번 - 좌표 정렬하기 2

참고: https://www.acmicpc.net/problem/11651 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 얼핏 보기에 이전 문제와 동일하다고 생각할 수 있지만, 이번 문제의 차이점은 x좌표가 증가하는 순이 아닌 y좌표가 증가하는 순으로 우선 정렬을 하고, 정렬된 y좌표에서 x좌표를 정렬하는 식으로 진행된다. import sys N=int(sys.stdin.readline()) data=[] for _ in range(N): a,b=map(int,sys.stdin.readline().split()) data.append([a,b]) data.sort(key=lambda x:(x[1], x[0])) for i in data: print(i[0], i[1]) 이전 문제에서 비슷한 코드이지만, la..

dDong2
'백준 알고리즘' 태그의 글 목록 (7 Page)