분류 전체보기
-
[백준] 1074 z (재귀 함수)백준 Online Judge 2021. 8. 31. 15:56
문제 해설 난이도 : 중 문제 유형 : 재귀 함수 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net def solve(n, x, y): global result if n == 2: if x == X and y == Y: print(result) return result += 1 if x == X and y+1 == Y: print(result) return result += 1 if x+1 == X and y == Y: print(result) return result += 1 if x+1 == X a..
-
[백준] 1074 z (재귀 함수)백준 Online Judge 2021. 8. 31. 15:51
문제 해설 난이도 : 중 문제 유형 : 재귀 함수 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net def solve(n, x, y): global result if n == 2: if x == X and y == Y: print(result) return result += 1 if x == X and y+1 == Y: print(result) return result += 1 if x+1 == X and y == Y: print(result) return result += 1 if x+1 == X a..
-
[백준] 2747 피보나치 수열백준 Online Judge 2021. 8. 31. 15:26
2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 해설 0과 1로 시작한다. 그 다음부터는 바로 앞 두 피보나치 수의 합이 된다. 기본적인 재귀 함수를 이용하면 시간 초과로 풀 수 없다. 입력 받은 수가 n 일 경우, n 번째 피보나치 수열 수를 구하라. 0 1 1 2 3 5 8 a b a b = (a+b) a b = (a+b) a b = (a+b) .. .. n = int(input()) a, b = 0, 1 while n > 0: a, b = b, a+b n -= 1 p..
-
[백준] 10989 수 정렬하기백준 Online Judge 2021. 8. 30. 21:22
10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 해설 수 정렬 하기 (N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.) 계수 정렬 알고리즘 (Counting Sort) : 수의 범위가 제한적일 때 사용 가능하다. 각 각의 인덱스를 값으로 보는 정렬 알고리즘. 데이터가 등장한 횟수를 세는 알고리즘. 데이터 갯수가 많을 때는 sys.stdin.readline()을 이용한다. 참고로, 쥬피터 노트북에서는 sys.stdin.readline() 사용 불가다. import sys n = int(sys.std..
-
[백준] 11650 좌표 정렬하기백준 Online Judge 2021. 8. 30. 21:01
11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제 해설 x 좌표 순서대로 정렬 하되, x 값이 같은 경우 y을 비교하여 정렬한다. n = int(input()) array = [] for _ in range(n): x, y = map(int, input().split(' ')) array.append((x, y)) # 기본적으로 sorted 함수 내에서, x가 같은 경우 y 크기 순으로 정렬하는 내용이 포함되어 있다. array = sorted(array..
-
[백준] 10814 나이 순으로 정렬하기백준 Online Judge 2021. 8. 27. 16:20
문제 해설 나이 순으로 정렬 하기 첫 번째 입력 값은 몇 명의 사람이 입력되는지 보여 준다. 나이가 같을 때는 입력이 먼저 된 사람부터 보여 준다. 튜플을 사용하면 쉽게 풀 수 있다. n = int(input()) array = [] # array는 리스트 형태 for _ in range(n): input_data = input().split(' ') # 리스트 array에 튜플 형태로 데이터 삽입 array.append((input_data[0], input_data[1])) array = sorted(array, key=lambda x:x[0]) for i in array: print(i[0], i[1]) GitHub - DAWUNHAN/Algorithms-and-DataStructure: Algor..
-
[백준] 1427 숫자 내림차순 정렬백준 Online Judge 2021. 8. 27. 15:51
문제 설명 입력 받은 숫자를 내림차순으로 정렬 문제 풀이 array = input() for i in range(9, -1, -1): for j in array: if int(j) == i: print(i, end='') GitHub - DAWUNHAN/Algorithms-and-DataStructure: Algorithms and DataStructure with Python Algorithms and DataStructure with Python. Contribute to DAWUNHAN/Algorithms-and-DataStructure development by creating an account on GitHub. github.com [ 패스트캠퍼스 알고리즘 / 기술면접 완전 정복 올인원 패키지..
-
[백준] 2750 수 정렬백준 Online Judge 2021. 8. 27. 15:26
문제 해설 처음 입력된 수는 숫자 개수이다. 2~n줄에는 숫자가 입력된다. 숫자를 작은 숫자부터 순서대로 출력한다. 선택 정렬로 해결하기 남은 원소 중에서 가장 작은 숫자를 앞으로 넣는다. n = int(input()) num_list = list() for i in range(n): num_list.append(int(input())) for i in range(n): min_idx = i for j in range (i+1, n): if num_list[min_idx] > num_list[j]: min_idx = j num_list[i], num_list[min_idx] = num_list[min_idx], num_list[i] for i in range(n): print(num_list[i]) 파이..