Computer Science/코딩테스트 문제 풀이
-
문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 2579번: 계단 오르기 문제보기문제계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 ..
[백준] [파이썬] [DP] 2579번: 계단 오르기문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 2579번: 계단 오르기 문제보기문제계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 ..
2023.09.07 -
문제철수는 계단을 오를 때 한 번에 한 계단 또는 두 계단씩 올라간다. 만약 총 4계단을 오른다면그 방법의 수는1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2 로 5가지이다.그렇다면 총 N계단일 때 철수가 올라갈 수 있는 방법의 수는 몇 가지인가?첫째 줄은 계단의 개수인 자연수 N(3≤N≤45)이 주어집니다.입력첫째 줄은 계단의 개수인 자연수 N(3≤N≤45)이 주어집니다.출력첫 번째 줄에 올라가는 방법의 수를 출력합니다.예제 입력 14예제 출력 15Top-Down 방식, 재귀계단이 1일 때 -> 1계단이 2일 때 -> 2 (1+1,2)계단이 3일 때 -> 3 (1+1+1, 1+2, 2+1) 즉, 1번계단에서 2칸 뛰어서 왔거나, 2번계단에서 1칸 뛰어서 옴F(n)=F(n-1)+F(n-2)정..
[파이썬] [DP] 예제2 철수의 계단문제철수는 계단을 오를 때 한 번에 한 계단 또는 두 계단씩 올라간다. 만약 총 4계단을 오른다면그 방법의 수는1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2 로 5가지이다.그렇다면 총 N계단일 때 철수가 올라갈 수 있는 방법의 수는 몇 가지인가?첫째 줄은 계단의 개수인 자연수 N(3≤N≤45)이 주어집니다.입력첫째 줄은 계단의 개수인 자연수 N(3≤N≤45)이 주어집니다.출력첫 번째 줄에 올라가는 방법의 수를 출력합니다.예제 입력 14예제 출력 15Top-Down 방식, 재귀계단이 1일 때 -> 1계단이 2일 때 -> 2 (1+1,2)계단이 3일 때 -> 3 (1+1+1, 1+2, 2+1) 즉, 1번계단에서 2칸 뛰어서 왔거나, 2번계단에서 1칸 뛰어서 옴F(n)=F(n-1)+F(n-2)정..
2023.09.07 -
동적계획법이란?여러개의 하위 문제를 먼저 푼 후 그 결과를 쌓아올려 확장하면서 주어진 문제를 해결하는 알고리즘하위 문제를 풀고 그 값을 이용해 다음 문제를 풀고 그 결과를 이용해 또 다음 문제를 푼다.f(n) = f(n-2)+f(n-1) 또는 f(n)=2*f(n-1) 같이 DP를 푸는 과정테이블 정의하기점화식 찾기초기값 정하기문제현수는 네트워크 선을 1m, 2m의 길이를 갖는 선으로 자르려고 합니다.예를 들어 4m의 네트워크 선이 주어진다면1) 1m+1m+1m+1m2) 2m+1m+1m3) 1m+2m+1m4) 1m+1m+2m5) 2m+2m의 5가지 방법을 생각할 수 있습니다. (2)와 (3)과 (4)의 경우 왼쪽을 기준으로 자르는 위치가다르면 다른 경우로 생각한다.그렇다면 네트워크 선의 길이가 Nm 라면 ..
[파이썬] [DP] 예제1 현수의 네트워크동적계획법이란?여러개의 하위 문제를 먼저 푼 후 그 결과를 쌓아올려 확장하면서 주어진 문제를 해결하는 알고리즘하위 문제를 풀고 그 값을 이용해 다음 문제를 풀고 그 결과를 이용해 또 다음 문제를 푼다.f(n) = f(n-2)+f(n-1) 또는 f(n)=2*f(n-1) 같이 DP를 푸는 과정테이블 정의하기점화식 찾기초기값 정하기문제현수는 네트워크 선을 1m, 2m의 길이를 갖는 선으로 자르려고 합니다.예를 들어 4m의 네트워크 선이 주어진다면1) 1m+1m+1m+1m2) 2m+1m+1m3) 1m+2m+1m4) 1m+1m+2m5) 2m+2m의 5가지 방법을 생각할 수 있습니다. (2)와 (3)과 (4)의 경우 왼쪽을 기준으로 자르는 위치가다르면 다른 경우로 생각한다.그렇다면 네트워크 선의 길이가 Nm 라면 ..
2023.09.07 -
문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 15903번: 카드 합체 놀이 문제보기 문제 석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다! 아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. 카드 합체는 다음과 같은 과정으로 이루어진다. x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y) 계산한 값을 x번 카드와 y번 ..
[백준] [파이썬] [그리디] [힙큐] 15903번: 카드 합체 놀이문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 15903번: 카드 합체 놀이 문제보기 문제 석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다! 아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. 카드 합체는 다음과 같은 과정으로 이루어진다. x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y) 계산한 값을 x번 카드와 y번 ..
2023.09.07 -
문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 2847번: 게임을 만든 동준이 문제보기 문제 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어의 점수는 레벨을 클리어하면서 얻은 점수의 합으로, 이 점수를 바탕으로 온라인 순위를 매긴다. 동준이는 레벨을 난이도 순으로 배치했다. 하지만, 실수로 쉬운 레벨이 어려운 레벨보다 점수를 많이 받는 경우를 만들었다. 이 문제를 해결하기 위해 동준이는 특정 레벨의 점수를 감소시키려고 한다. 이렇게해서 각 레벨..
[백준] [파이썬] [그리디] 2847번: 게임을 만든 동준이문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 2847번: 게임을 만든 동준이 문제보기 문제 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어의 점수는 레벨을 클리어하면서 얻은 점수의 합으로, 이 점수를 바탕으로 온라인 순위를 매긴다. 동준이는 레벨을 난이도 순으로 배치했다. 하지만, 실수로 쉬운 레벨이 어려운 레벨보다 점수를 많이 받는 경우를 만들었다. 이 문제를 해결하기 위해 동준이는 특정 레벨의 점수를 감소시키려고 한다. 이렇게해서 각 레벨..
2023.09.07 -
문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 11399번: ATM 문제보기 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람..
[백준] [파이썬] [그리디] 11399번: ATM문제집 추천, 이 문제집에 나온 유형들만 공부해도 코딩테스트는 거뜬: https://www.acmicpc.net/workbook/by/BaaaaaaaaaaarkingDog 11399번: ATM 문제보기 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람..
2023.09.07