본문 바로가기
728x90
반응형

분류 전체보기229

[BOJ] 2579번 계단 오르기 / 사용언어 : 파이썬(python) ※ 문제링크 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 해당 문제는 동적 프로그래밍을 적용하여 푸는 문제였다. 규칙을 찾기는 어려웠지만, 규칙을 알고나니 구현하는 것은 생각보다 어렵지 않았다. 문제를 푸는데 사용한 구체적인 방법과 코드는 아래와 같다. - 1번째 계단에서 가질 수 있는 최댓값은 자기 자신과 동일 / 2번째는 1번째 계단과 2번째 계단의 합과 동일 - 3번째 계단이 가질 수 있는 최댓값 : 1번째 계단과 3번째 계단을 더한 값과 2번째 계단과 3번째 계단을 더한값 중 큰 값 - 4번째부터는 2개의 값을.. 2021. 12. 23.
[BOJ] 11053번 가장 긴 증가하는 부분 수열 / 사용언어 : 파이썬 ※ 문제링크 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net ※ 관련개념 [알고리즘]최장 증가 부분 수열 알고리즘(LIS) 원소가 n개인 배열의 일부 원소를 골라내서 만든 부분 수열 중, 각 원소가 이전 원소보다 크다는 조건을 만족하고, 그 길이가 최대인 부분 수열을 최장 증가 부분 수열이라고 합니다.예를 들어 velog.io 이번 문제는 LIS의 개념을 이용하여 풀어야하는 문제였다. LIS가 생소한 개념이라 구글링을 통해 개념을 확.. 2021. 12. 23.
[BOJ] 10844번 쉬운 계단수 / 사용언어 : 파이썬(python) ※ 문제링크 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net ※ 관련개념 메모이제이션 - 위키백과, 우리 모두의 백과사전 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하 ko.wikipedia.org ※ 참고 사이트 [백준] 10844번(python 파이썬) 문제 링크: https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net n = int(.. 2021. 12. 23.
[BOJ] 1463번 1로 만들기 / 사용언어 : 파이썬(python) ※ 문제링크 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net ※ 관련개념 메모이제이션 - 위키백과, 우리 모두의 백과사전 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하 ko.wikipedia.org 해당 문제는 메모이제이션을 활용하여 각각의 계산결과를 저장하고 그 이후 계산을 이전 리스트를 참조해서 풀어야 하는 문제였다. 문제해결 코드를 작성하는 것은 크게 어렵지 않았으며, 자세한 문제풀이방법과 코드는 아래와 같다. 1. 처음 받은 입력값을 2차원 리스트 형태로 저장한다. 2.. 2021. 12. 23.
[BOJ] 1149번 RGB거리 / 사용언어 : 파이썬(python) ※ 문제링크 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net ※ 관련개념 메모이제이션 - 위키백과, 우리 모두의 백과사전 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하 ko.wikipedia.org 해당 문제는 메모이제이션과 배열을 이용하여 푸는 문제였다. 입력값을 저장할 배열을 생성한 뒤 2차원 리스트로 배열을 만들고 반복문을 작성하여 최.. 2021. 12. 23.
[BOJ] 1932번 정수 삼각형 / 사용언어 : 파이썬(python) ※ 문제링크 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net ※ 관련개념 메모이제이션 - 위키백과, 우리 모두의 백과사전 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하 ko.wikipedia.org 해당 문제는 메모이제이션과 피보나치수열의 개념을 응용해서 풀어야하는 문제였다. 각각의 정수 삼각형마다 피보나치를 적용하고 중간에 있는 값들은 최댓값을 구해서 반영하여 반복문을 돌려서 마지막 행까지 구한 다음, 최댓값을 출력하는 방식으로 문.. 2021. 12. 22.
[BOJ] 9461번 파도반 수열 / 사용언어 : 파이썬(python) ※ 문제링크 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 해당 문제는 문제의 규칙을 이용하여 배열을 만들어 푸는 문제였다. 피보나치 수열과 비슷한 규칙을 가지고 있다고 문제에서 사전에 조건을 주었기에 비교적 쉽게 규칙을 발견할 수 있었다. 해당 문제의 규칙은 3까지는 1의 값을 가지다가 그 이상이 되면 N은 값이 N-3의 값과 N-2의 값을 더한 값이 되는 것이었다. 규칙을 알고나니 구현하는 것은 어렵지 않았다. 문제를 푸는 방법과 코드는 아래와 같다. 1. 입력값을 받고 그 길이 만큼 배열을 생성한다. 2. .. 2021. 12. 22.
[BOJ] 1904번 타일 / 사용언어 : 파이썬(python) ※ 문제링크 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 해당 문제는 피보나치 수열을 사용해서 풀어야하는 문제였다. 그래서 처음에는 피보나치 수열 함수를 작성하고 메모이제이션 방식을 활용하여 풀어보았는데, 시간초과가 발생하여 코드를 보다 더 간단하게 작성해보았다. 추가적으로 해당문제는 범위가 크기때문에 문제에서 주어진 숫자인 15746으로 나누어서 값을 저장하지 않으면 오버플로우 문제가발생할 수 있다. 그러므로 반드시 값을 저장할 때는 원래값이 아닌 나머지 값들을 저장해주어야 했다. 문제를 푸는 데 사용한 방법.. 2021. 12. 22.
[BOJ] 9184번 신나는 함수 실행 / 사용언어 : 파이썬(python) ※ 문제링크 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net ※ 관련개념 메모이제이션 - 위키백과, 우리 모두의 백과사전 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하 ko.wikipedia.org 해당 문제는 메모이제이션을 사용하여 풀어야하는 문제였다. 개념만 알면 비교적 간단하게 풀수 있는 문제였다. 메모이제이션은 간단하게 재귀함수를 처음쓸때 호출했던 값들을 모.. 2021. 12. 22.
728x90
반응형