풀이

알고리즘(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..

알고리즘(algo)/백준

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

참고: https://www.acmicpc.net/problem/11650 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 x좌표에 대한 정렬을 먼저 수행한뒤, x좌표의 값이 같으면 해당 x좌표 내에서 y좌표를 정렬하여 출력하는 문제이다. import sys N=int(sys.stdin.readline()) x,y=[],[] for _ in range(N): a,b=map(int,sys.stdin.readline().split()) x.append(a) y.append(b) x.sort() y.sort() for i in range(N): print(x[i],y[i]) 처음에는 다음과 같은 방법을 생각했는데, y를 정렬한 뒤 해당 값들을 출력하게 되니 x와 y의 값이 맞지 않고 x가 양수일 때 y가 해당 x ..

알고리즘(algo)/백준

[백준] 2108번 - 통계학

참고: https://www.acmicpc.net/problem/2108 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 해당 문제의 입력과 출력 예시는 중요한 반례들만 들어있다. 1과 3에서는 최빈값이 여러개 일때, 두 번째로 작은 값을 출력하는 반례가 있고 2에서는 1개 입력을 받았을 때의 범위가 0이라는 것, 4에서는 평균 값이 올림이 아닌 반올림을 해주어야한다는 것이다. 1) 리스트를 받아서 정렬하고 round 및 sum을 활용한다. 2) 정렬한 리스트의 끝값과 첫값의 차이가 범위이다. 3) 정렬한 리스트를 반으로 나눈 인덱스가 중간 값이다. 이렇게는 금방 해결할 수 있었지만, 최빈값을 구하고 그 중에서도 여러 최빈값의 두 번째로 작은 값에 해당하는 조건이 가장 까다로웠다. import sys from..

dDong2
'풀이' 태그의 글 목록 (11 Page)