본문 바로가기

Algorithm/알고리즘 문제풀이92

백준 10757번, 파이썬 - 큰 수 A + B https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net a, b = map(int, input().split()) print(a + b) # C언어의 경우, 자료형에 따른 메모리가 한정되어 있기 때문에 # 10757번 같은 문제를 풀기 어렵다. # 파이썬의 경우, 언어 자체적으로 BigInt를 지원하기 때문에 문제없이 연산이 가능하다. # 그렇다면 파이썬이 Integer로 표현할 수 있는 최대값은 몇일까? import sys max_num = sys.maxsize max_num2 = sys.maxsize + 1 print("max_num =", type(max.. 2021. 8. 11.
백준 2839번, 파이썬 - 설탕배달 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net # 최소 봉지 개수의 조합을 짜려면 우선 5단위로 끊어야 한다. # 5단위로 끊고 남은 나머지에 따라 조건문이 달라진다. # 5로 나누기 떄문에 1 ~ 4 까지의 나머지가 생길 수 있다. # case 0) 나머지가 없는 경우, 5로 나눈 몫을 그대로 가져간다. # case 1) 나머지가 1인 경우, 5로 나눈 몫을 1개(5) 줄이고 나머지 1 + 5를 3단위로 나눈다. # case 2) 나머지가 2인 경우,.. 2021. 8. 11.
오늘의 알고리즘(백준 11004) 1. 백준 11004, K번째 수 https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 요구사항 - 입력값 두개를 받는다. ex) N K - 입력값 N은 입력 받을 숫자의 개수 - 입력값 K는 자리 번호이다. - N개 만큼의 수를 입력받고 이를 오름차순으로 정렬한다. - 그리고 K-1번째 자리에 있는 숫자를 출력한다. index는 0번부터니까 3. 어떻게 풀까? n, k = map(int, input().split()) array = list(map(int, input().split())) arr.. 2021. 7. 23.
오늘의 알고리즘(백준 2751) 1. 백준 2751, 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 요구사항 - 첫번째 입력값 N은 몇개의 수가 입력되는 지를 정한다. - N개의 수가 입력되고 나면 이를 오름차순으로 정리해야 한다. 3. 어떻게 풀어야 할까? - int(input())으로 첫번째 입력값 N을 받는다. - map을 이용하여 N개의 input을 배열로 정리한다. - N개의 요소를 갖는 배열을 오름차순으로 정렬한다. - 1개씩 출.. 2021. 7. 23.
오늘의 알고리즘(백준 7490) 1. 백준 7490, 0 만들기 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 2. 요구사항 - 첫번째 입력값은 테스트 케이스의 개수(N < 10)가 주어진다. ex) 2가 입력된다면, 테스트 케이스가 2개라는 뜻 - 그 다음 N개 만큼 테스트 할 숫자의 범위(3 2021. 7. 22.
오늘의 알고리즘(5월 5일) 1. 백준, Z, 1074번 www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 2. 생각해보자 a) 문제 이해하기 2의 N승 곱하기 2의 N승 크기의 행렬이 있다. 행렬의 크기와는 상관없이 2 곱하기 2 크기의 배열로 나누어 방문한다. 방문 순서는 Z 모양 순서다. (0, 1, 2, 3 순서로 방문) 입력값은 N, r, c 순서대로 주어진다. 입력값 N에 따라서 행렬의 크기가 정해진다. 입력값 r은 row(행), 입력값 c는 column(열)을 의미한다.. 2021. 5. 5.
오늘의 알고리즘(5월 4일) 1. 백준, 피보나치 수, 2747번 www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 2. 생각해보자 피보나치 수열에 대해 이해한다. 피보나치는 0과 1로 시작한다. 0번째 수는 0, 1번째 수는 1이다. 그 다음, 2번째 수는 앞의 두 수의 합이 된다. 피보나치 수열의 기본 공식을 이용한다. Fn = Fn-1 + Fn-2 (n ≥ 2) 첫번째 입력값 N은 45보다 작거나 같은 자연수다. fibonacci = [0, 1] n .. 2021. 5. 4.
오늘의 알고리즘(4월 29일) 1. 백준, 수 정렬하기3, 10989번 www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 생각해보자 첫 입력값 N은 앞으로 입력될 정수의 개수 N개의 입력값을 array에 입력받는다. 파이썬 기본 정렬 알고리즘을 사용하여 오름차순 정렬 후 한개씩 출력한다. n = int(input()) array = [] for _ in range(n): data = int(input()) array.append(data) array.sort() for data in array: pri.. 2021. 4. 29.
오늘의 알고리즘(4월 28일) 1. 백준, 좌표 정렬하기, 11650 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 2. 생각해보자 a) 문제 이해 첫번째 입력값 N은 앞으로 입력될 좌표의 개수를 의미한다. 주어진 좌표의 x와 y 값을 기준으로 오름차순 정렬을 한다. b) 어떻게 풀까? 데이터를 튜플 형식으로 입력받는다. x값을 비교하여 정리하는데, x값이 동일한 경우 y값을 비교하는 조건문을 만든다. 3. 코드 해설 및 분석 파이썬.. 2021. 4. 28.