본문 바로가기
반응형

분류 전체보기103

[백준] 2747번 : 피보나치 수 유형 : 재귀 함수 [예제] 10 [출력] 55 1. 내 풀이 n = int(input()) _list = [0,1] for i in range(n): _list.append(_list[i]+_list[i+1]) print(_list[n]) ▷ 피보나치 수의 식인 Fn = Fn-1 + Fn-2 (n ≥ 2)을 이용해서 풀었다. ▷ 처음 두 수 0,1을 리스트에 받고, 이 리스트를 이용하였다. ▷ 문제에서 전체 배열이 아니라 n번째 피보나치 수를 출력하라고 했으니, 굳이 append로 할 필요는 없어 보인다. 2. 다른 풀이 출처 : 패스트캠퍼스 - 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online ** 핵심 아이디어 1. 피보나치 수열의 점화식을 세움 F0 = 0, F1 = 1 Fn = Fn-1.. 2022. 1. 1.
[백준] 10989번 : 수 정렬하기 3 유형 : 정렬 [예제] 10 5 2 3 1 4 2 3 5 1 7 [출력] 1 1 2 2 3 3 4 5 5 7 1. 내 풀이(틀림) 더보기 N = int(input()) num_list = [] for _ in range(N): tmp = int(input()) num_list.append(tmp) num_list = sorted(num_list) for i in range(N): print(num_list[i]) ▷ 메모리 초과로 실패 ▷ 기본 정렬 라이브러리로는 안 되는 듯 하다. ▷ 반복문 안에 append를 썼기 때문에 메모리 재할당이 일어나 속도 저하와 비효율적인 메모리 사용이 발생한다. (출처) ▷ FAQ : https://www.acmicpc.net/board/view/26132 모든 입력을 .. 2022. 1. 1.
[백준] 11650번 : 좌표 정렬하기 유형 : 정렬 [예제] 5 3 4 1 1 1 -1 2 2 3 3 [출력] 1 -1 1 1 2 2 3 3 3 4 1. 내 풀이 N = int(input()) num_list = [] for i in range(N): num1, num2 = input().split(' ') num1 = int(num1) num2 = int(num2) num_list.append([]) num_list[i].append(num1) num_list[i].append(num2) num_list = sorted(num_list) for i in range(N): print(num_list[i][0],num_list[i][1]) ▷ 2차원 리스트로 만드는 게 핵심이다. ▷ x좌표, y좌표를 하나의 리스트에 담고, 기본 정렬 라이브러.. 2021. 12. 31.
[백준] 10814번 : 나이순 정렬 유형 : 정렬 [예제] 3 21 Junkyu 21 Dohyun 20 Sunyoung [출력] 20 Sunyoung 21 Junkyu 21 Dohyun 1. 내 풀이 N = int(input()) age_list = [] name_list = [] for _ in range(N): age, name = input().split(' ') age = int(age) age_list.append(age) name_list.append(name) age_list2 = list(enumerate(age_list)) age_list3 = sorted(age_list2, key=lambda x:(x[1],x[0])) for index, value in age_list3: print(value, name_list[ind.. 2021. 12. 31.
[백준] 1427번 : 소트인사이드 문제 유형 : 정렬, 배열 [예시] 2143 [출력] 4321 1. 내 풀이 N = input() M = int(N) _list = [] for _ in range(len(N)): _list.append(M%10) M = M//10 _list = sorted(_list,reverse=True) for i in range(len(_list)): print(_list[i],end='') - N에 수를 입력받고, 자리수를 세야해서 바로 int로 바꾸지 않았다. - 변수 M을 int형으로 바꾼 N으로 두었다. - 숫자의 각 자리수에 해당하는 수를 _list 원소에 하나씩 넣었다. - 그 뒤 sorted()로 내림차순 정렬하였다. 2. 다른 풀이 ** 핵심 아이디어 1. 자릿수를 기준으로 정렬 → 9부터 0까지 .. 2021. 12. 27.
[백준] 2750번 : 수 정렬하기 문제 유형 : 정렬 [예시] 5 5 2 3 4 1 [출력] 1 2 3 4 5 1. 내 풀이 N = int(input()) _list = [] for i in range(N): tmp = int(input()) _list.append(tmp) _list = sorted(_list) for i in _list: print(i) 입력받은 N 개수만큼 _list에 데이터를 입력받았다. for문을 이용해 하나씩 입력받았고, append() 함수로 _list 뒤에 하나씩 이어붙였다. 그 뒤 sorted()로 _list를 오름차순 정렬하고, for문으로 _list 값 하나씩 출력하였다. 2. 다른 풀이 ** 핵심 아이디어 1. 데이터의 개수가 1000개 이하 → 기본적인 정렬 알고리즘을 이용 1) 선택 정렬 알고리즘.. 2021. 12. 27.
반응형