본문 바로가기
반응형

분류 전체보기195

2024년 정보올림피아드 필기 초등부(16 ~ 20) 2024년도 정보올림피아드 1차대회 필기 초등부 16번부터 20번까지 문제 풀이 입니다.16번 맨 위에 있는 8을 시작으로 왼쪽 자식과 오른쪽 자식의 값을 비교해서 왼쪽 자식, 자신, 오른쪽 자식의 크기가 아래와 같은 등호를 만족하도록 만들면 됩니다.왼쪽 자식 가운데는 이미 3개의 숫자 중 중간 값이기 때문에 왼쪽 자식과 오른쪽 자식의 관계만 정해주면 됩니다.왼쪽 자식  17번 양쪽 끝의 숫자를 확인해서 더 큰 숫자를 클릭해서 빼주면 됩니다. 만약 두 수가 같다면 다음 숫자들이 큰 숫자를 먼저 빼면 됩니다.  18번 작은 숫자부터 시작합니다. 길이가 2인 것부터 시작해서 길이 5까지 만들어 나갑니다. 이 때 다른 이진 코드의 접두사가 되지 않게 만들어야 합니다.혼란스럽지 않게 규칙적으로 진행해야 합니다... 2025. 3. 27.
2024년 정보올림피아드 필기 초등부(11 ~ 15) 2024년도 정보올림피아드 1차대회 필기 초등부 11번부터 15번까지 문제 풀이 입니다. 11번 인버전의 개수라는 용어에서 Inversion Counting 알고리즘이 생각나야 합니다. 이 알고리즘은 역순으로 되어 있는 순서쌍의 개수를 세는 알고리즘입니다. 자세한 설명은 아래 링크 확인 바랍니다.https://davincicoding.tistory.com/22 Inversion Counting 알고리즘Inversion Counting 이란? Inversion Counting 이란 역순으로 되어 있는 순서쌍의 개수를 세는 유명한 알고리즘 입니다. 쉽게 예를 들면 아래와 같은 숫자가 있습니다. 3 2 5 4 1 이렇게 5개의 숫자가 있습니다davincicoding.co.kr 이 문제에서는 어떻게 사용되는지 .. 2025. 3. 21.
2024년 정보올림피아드 필기 초등부(6 ~ 10) 2024년도 정보올림피아드 1차대회 필기 초등부 6번부터 10번까지 문제 풀이 입니다. 6번 205명이 3명의 후보에게 투표할 수 있기 때문에 3으로 나눠보면 68명씩 투표할 수 있고 1명이 남게 됩니다. 즉 A, B, C가 68표씩 득표 했다면 지금까지 204명이 투표를 한 것이고, 이제 마지막 한 명을 얻으면 득표수와 무관하게 반드시 당선이 되게 됩니다. 결국 최소 69표를 얻으면 당선이 됩니다.만약 A가 69표를 얻었다면 B나 C가 1등이 되더라도 2등으로 당선이 됩니다. B가 69표를 얻는다고 하더라도 C는 최대 67표를 얻기 때문에 공동 1등으로 당선이 됩니다. 다른 어떤 경우에도 A는 69표만 있으면 당선이 가능하게 됩니다. 7번 그래프를 보면 왠지 가운데에 위치하고 있는 B가 중심이 되어야 .. 2025. 3. 19.
2024년 정보올림피아드 필기 초등부(1 ~ 5) 2024년도 정보올림피아드 1차대회 필기 초등부 1번부터 5번까지 문제 풀이 입니다. 1번지하철은 오전 6시부터 7분마다 출발하기 때문에 7의 배수인 값을 찾으면 됩니다.1번 오전 10시는 오전 6시부터 4시간 뒤이기 때문에 240분 입니다. 240은 7의 배수가 아니기 때문에 답이 아닙니다.2번 오후 12시 4분은 오전 6시부터 6시간 4분 입니다. 364분은 7의 배수이기 때문에 2번이 정답이 됩니다.2번이 답이긴 하지만 나머지도 확인해 보겠습니다.3번 오후 1시 3분은 423분으로 7의 배수가 아닙니다.4번 오후 4시 33분은 633분으로 7의 배수가 아닙니다.5번 오후 11시 11분은 1031분으로 7의 배수가 아닙니다. 2번1부터 차례대로 계산하면 결과를 얻을 수 있습니다.x가 1일 경우를 생각.. 2025. 3. 17.
[백준 7573] 고기잡이 문제 출처 : https://www.acmicpc.net/problem/7573고기잡이(7573)이 문제는 2013년 정보 올림피아드 지역본선 중등부 2번 문제 입니다.문제 이해하기그물을 이용하여 한 번에 잡을 수 있는 최대 물고기 마리수를 출력하는 문제 입니다. 문제를 읽어보면 모눈 종이의 크기가 10,000 입니다. 그리고 그물의 크기가 100으로 그물의 모양만 50여개 정도 있습니다. 이런 상황에서 모눈 종이를 기준으로 물고기를 찾는다면 시간초과에 빠질수 밖에 없습니다. 다행히 물고기의 수는 최대 100마리 이기 때문에 모눈종이를 기준으로 하지 않고 물고기를 기준으로 그물을 설치한다면 시간초과에 걸리지 않을 수 있습니다.물고기를 기준으로 그물을 설치하고, 물고기의 마리수를 세는 아이디어는 있지만 그.. 2025. 1. 27.
[백준 10211] Maximum Subarray Maximum Subarray(10211)문제 출처 : https://www.acmicpc.net/problem/102111차원 배열에서 가장 큰 부분 배열을 찾는 문제 입니다. 백준 10211번이 대표적인 문제라 할 수 있습니다.브루트 포스(Brute Force)이 문제의 가장 쉬운 해결 방법은 브루트 포스로 해결하는 것입니다. 말 그대로 하나하나 다 해보는 것입니다.입력 받기T = int(input())for _ in range(T): N = int(input()) arr = list(map(int, input().split())) print(solve())테스트 케이스 T를 입력 받습니다. 그리고 T개의 배열 정보를 입력 받습니다. N은 배열의 크기이며 arr에 배열 정보를 입력 받.. 2025. 1. 19.
[백준 1149] RGB 거리 RGB 거리(1149)문제 출처 : https://www.acmicpc.net/problem/1149N개의 집에 빨강, 파랑, 초록색으로 지붕을 칠해야 하는 문제입니다. 이 때 비용이 최소가 되고, 지붕의 색이 겹쳐지지 않아야 합니다.어떤 지붕이 빨간색이면 그 앞과 뒤의 집은 빨간색이면 안됩니다. 이렇게 모든 지붕에 색을 칠할 때 최소값을 구하는 문제 입니다. 그럼 다음과 같은 함수를 만들 수 있습니다.solve(n, c)이 함수는 n번째 집의 지붕에 c라는 색으로 칠했을 때 드는 최소 비용 입니다. c는 빨강은 0, 파랑은 1, 초록은 2로 입력받도록 합니다.코드 작성하기간단한 DP문제이기 때문에 바로 코드를 작성해 보겠습니다.입력 받기N = int(input())cost = [[0, 0, 0]]for.. 2024. 12. 7.
[백준 24552] 올바른 괄호 올바른 괄호(24552)문제 출처 : https://www.acmicpc.net/problem/24552 이 문제를 처음 보았을 때 스택을 이용하여 문제를 해결한다고 생각했습니다. 보통 괄호 문제는 스택에 넣어가며 문제를 해결하기가 쉽기 때문 입니다. 아직 괄호 문제를 풀어본 경험이 없다면 먼저 아래 문제부터 해결해 보시기 바랍니다.https://davincicoding.tistory.com/189 [백준 9012] 괄호괄호(9012)문제 출처 : https://www.acmicpc.net/problem/9012 이 문제는 다빈치코딩 알고리즘에서 이미 스택으로 풀어본 문제 입니다. 이전 스택 풀이는 아래 링크를 확인 바랍니다.https://wikidocs.net/215110 06.davincicoding.. 2024. 11. 27.
[백준 2504] 괄호의 값 괄호의 값(2504)이 문제는 2008년 정보 올림피아드 지역 본선 초등부 4번, 중등부 2번 문제 입니다.문제 이해하기괄호 관련 문제가 보인다면 먼저 스택이 아닌가 생각해 보아야 합니다. 괄호 관련 문제는 스택의 특성을 이용해서 해결하는 경우가 많기 때문 입니다. 괄호 문제를 푸는 방법에 대해서는 아래 링크에서 소개 했었습니다. 아래 링크를 통해 괄호 문제를 어떻게 바라봐야 하는지 확인 바랍니다.https://davincicoding.tistory.com/189 [백준 9012] 괄호괄호(9012)문제 출처 : https://www.acmicpc.net/problem/9012 이 문제는 다빈치코딩 알고리즘에서 이미 스택으로 풀어본 문제 입니다. 이전 스택 풀이는 아래 링크를 확인 바랍니다.https:/.. 2024. 11. 26.
[백준 22341] 사각형 면적 사각형 면적(22341)문제 출처 : https://www.acmicpc.net/problem/22341 이 문제는 2021년 정보올림피아드 2차 대회 초등부 1번 문제 입니다. 종이에 점이 주어졌을 때 가로나 세로로 잘라 더 큰 면적을 남겨나가며 최종적으로 얻게 되는 면적을 구하는 문제 입니다. 규칙에 맞게만 수행한다면 어려운 점 없이 문제를 해결할 수 있습니다. 간단한 문제이기 때문에 코드를 작성해 나가며 문제를 해결해 보겠습니다.코드 작성코드를 작성해보겠습니다.입력 받기N, C = map(int, input().split())A, B = N, Nfor _ in range(C): X, Y = map(int, input().split()) A, B = get_area(A, B, X, Y)pr.. 2024. 11. 25.
[백준 9012] 괄호 괄호(9012)문제 출처 : https://www.acmicpc.net/problem/9012 이 문제는 다빈치코딩 알고리즘에서 이미 스택으로 풀어본 문제 입니다. 이전 스택 풀이는 아래 링크를 확인 바랍니다.https://wikidocs.net/215110 06. 괄호[백준 9012]문제 출처 : [괄호](https://www.acmicpc.net/problem/9012) 괄호의 쌍을 찾는 문제는 대표적인 스택 문제라 할 수 있습니다. “(” 가 입력 되었…wikidocs.net 그럼에도 다시 이 문제를 풀이하는 이유는 스택 말고도 다른 풀이 방법이 여러가지가 있기 때문 입니다. 괄호를 사용한 문제는 여러가지가 있기 때문에 다른 풀이 방법도 익숙해져야 그 문제에 맞는 풀이법을 사용할 수 있기 때문 입니.. 2024. 11. 24.
[백준 18222] 투에-모스 문자열 투에-모스 문자열(18222)문제 출처 : https://www.acmicpc.net/problem/18222 k를 입력 받아 그 값이 0인지, 1인지를 찾는 문제 입니다. 재귀로 풀 수 있는 문제로 재귀를 이제 막 배웠다면 조금 어려울 수 있습니다.문제 이해하기문자열 x는 10 ** 18 이라는 엄청난 크기를 가지고 있습니다. 따라서 하나 하나 계산 해서는 답을 구할 수 없습니다. 문자열 x는 두 배씩 커지면서 매 번 값이 반전된다는 것을 이용하면 문제를 좀 더 쉽게 해결 할 수 있습니다.문제를 이해하기 위해 x를 만들어 보겠습니다. 처음 x는 0 입니다.0이제 x를 반전해서 이어 붙여 줍니다.0 1다음 역시 x를 반전해서 이어 붙여 줍니다.0 1 1 0이것의 길이를 두 배씩 늘려주면 다음과 같습니다0.. 2024. 11. 23.
[백준 20188] 등산 마니아 등산 마니아(20188)문제 출처 : https://www.acmicpc.net/problem/20188 이 문제는 2020년 정보올림피아드 2차 대회 초등부 3번, 중등부 2번 문제 입니다.문제 이해하기한 번만 읽어서는 잘 이해하기 힘든 문제 입니다. 특히나 다양성이라는 용어가 중요한데 이 말의 뜻이 어렵습니다.다양성은 길에 포함된 오솔길의 개수로 정의된다.이렇게 정의 되어 있습니다. 문제를 제대로 읽지 않으면 다양한 경로의 개수로 잘못 이해하기 쉽습니다. 문제를 잘 읽어보면 이 문제에서 원하는 다양성은 두 지점을 지나는 간선의 개수 입니다. 이 간선의 개수는 최단 경로를 뜻하는 것이 아니라 정상 즉 루트를 지나는 경로입니다.위와 같이 6, 7을 연결하는 다양성은 루트 부터 각 번호까지 간선의 개수 3.. 2024. 11. 22.
[백준 21760] 야구 시즌 야구 시즌 (21760)문제 출처 : https://www.acmicpc.net/problem/21760 이 문제는 2021년 정보올림피아드 1차 고등부 1번 문제 입니다.N개의 리그가 존재하고, 각 리그에는 M개의 팀이 있습니다. 모든 리그에 팀은 M개로 정해져 있는지 리그 전체의 팀은 N * M 개 입니다.같은 리그에서는 같은 리그에 있는 다른 팀과 각각 A번 씩 경기를 해야 합니다. 그리고 다른 지역과는 B번 씩 경기를 해야 합니다. A와 B는 다음과 같은 관계를 가집니다.A = k * B판데믹의 영향으로 경기의 수를 D번으로 제한 하게 되었고, A, B 값을 조절해야 합니다. 하지만 모든 팀들은 한 번 이상 경기를 진행해야 합니다. 즉 A, B는 1 이상 입니다.문제 이해하기N, M, k, D가 .. 2024. 11. 21.
[백준 17623] 괄호 괄호(17623)문제 출처 : https://www.acmicpc.net/problem/17623 이 문제는 2019년 정보올림피아드 2차 고등부 2번 문제 입니다. 괄호 문제들이 심심치 않게 출제되고 있기 때문에 어떻게 푸는지 감을 잡고 있어야 합니다. 이 문제는 특히나 생각할 부분이 많이 있습니다. 단순히 괄호만 계산하면 되는 것이 아니라 괄호 문자열을 숫자로 변경해서 가장 숫자가 낮은 형태로 저장해야 합니다.괄호 문자열을 만드는 것은 DP로 해결이 가능해 보입니다. 그리고 dmap값을 통해 숫자로 변경하는 부분은 복잡하기는 하지만 그리 어려운 부분은 아닙니다.문제 이해하기X 찾기올바른 문자열을 만드는 방법을 생각해 보겠습니다. solve(N)이라는 함수를 만들어 문자열 X를 찾는 것입니다. N값에 .. 2024. 11. 20.
[백준 20186] 수 고르기 수 고르기(20186)문제 출처 : https://www.acmicpc.net/problem/20186 이 문제는 2020년 정보올림피아드 2차 대회 초등부 1번 문제 입니다.문제 이해하기문제를 읽어보면 상당히 복잡해 보입니다. 하지만 조금만 잘 생각해보면 규칙을 쉽게 찾을 수 있습니다.2 3 1 2 1, K = 3문제의 예제처럼 위와 같이 숫자가 있고 3개의 숫자를 선택해야 합니다. 그리고 점수는 자신의 왼쪽에 있는 선택된 수 입니다. 3개의 숫자를 어떻게 고를지 모르겠지만 K값이 3이기 때문에 숫자 3개를 골라야 합니다. 이 숫자들을 a, b, c라고 하겠습니다. a, b, c의 점수는 각각 a - 0, b - 1, c - 2 입니다. 이 숫자들의 합은 a + b + c - 0 - 1 - 2로 나타낼.. 2024. 11. 19.
[백준 2447] 별 찍기 - 10 별 찍기 - 10 (2447)문제 출처 : https://www.acmicpc.net/problem/2447 반복문에 대해 처음 배웠을 때 시작하는 것이 별 찍기 입니다. 아직 별 찍기가 무엇인지 잘 모른다면 아래 링크를 통해 별 찍기가 무엇인지 알아보기 바랍니다.https://wikidocs.net/192041 03. 별 찍기# 별 찍기 별 찍기는 반복문을 제대로 익히기에 아주 좋은 방법입니다. 숫자를 입력받고, 해당 숫자에 맞게 별이 찍히는 프로그램을 작성하는 것입니다. 가령 5를 입력하면 첫 번…wikidocs.net 백준에는 다양한 별 찍기 문제가 있으니 아직 별 찍기 이전 문제들을 풀어보지 못했다면 풀어보시기 바랍니다. 아래 링크를 들어가면 여러 가지 형태의 별 찍기 문제를 볼 수 있습니다.ht.. 2024. 11. 18.
[백준 2812] 크게 만들기 크게 만들기(2812)문제 출처 : https://www.acmicpc.net/problem/2812N자리의 숫자에서 K개의 숫자를 지워 가장 큰 숫자를 만드는 문제 입니다.문제 이해하기문제를 잘 생각 해보면 뒤의 숫자가 앞의 숫자보다 크다면 앞의 숫자를 지워주면서 가장 큰 숫자를 찾아나가야 합니다.숫자를 한 자리씩 탐색 시작현재 숫자가 앞의 숫자보다 크고, 지워야할 숫자가 남아 있다면 앞의 숫자를 제거스택을 이용해서 숫자를 만들어 나가면 된다는 것을 느꼈다면 반은 성공한 것입니다.예제 만들어 보기예제에 있는 1924를 예를 들어보겠습니다. 1924에서 2개의 숫자를 빼서 가장 큰 숫자를 만들어야 합니다.1924 탐색 시작첫번째 숫자 1 탐색.만든 숫자 : 1, K : 29 탐색. 1보다 크고, K가 남.. 2024. 11. 17.
[백준 25400] 제자리 제자리(25400)문제 출처 : https://www.acmicpc.net/problem/25400 이 문제는 2022년 정보 올림피아드 2차 초등부 1번 문제 입니다.문제 이해하기제자리 상태가 된다는 것은 최종적으로는 1, 2, 3, … 순으로 남아있어야 한다는 뜻입니다. 만약 아래와 같은 숫자들이 있습니다. 5, 4, 3, 2, 1 이숫자들을 제자리 상태로 만든다는 것은 1 하나만 남기는 것입니다. 왜냐하면 어떤 숫자를 빼도 오름차순으로 정렬할 수 없기 때문 입니다. 만약 숫자들 중에 1이 존재하지 않는다면 제자리 상태를 만들 수 없고 결국 모든 카드를 제거해야 합니다. 결국 이 문제를 해결하기 위해서는 제일 먼저 1을 찾고, 다음은 2를 찾고, 또 3을 찾아 순서대로 정렬하고 정렬이 되지 않는 카드.. 2024. 11. 16.
[백준 11437] LCA (재풀이) LCA 다시 풀기 (11437)문제 출처 : https://www.acmicpc.net/problem/11437 사실 이 문제는 예전에 해결 했던 문제 입니다. 다만 체점이 다시 되면서 맞았던 내용이 틀렸다고 나와 다시 풀게 되었습니다. 이 전 풀이는 아래 링크를 확인 바랍니다.https://davincicoding.tistory.com/36 [백준 11437] LCA문제 출처 : https://www.acmicpc.net/problem/11437 11437번: LCA 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알davincicoding.co.kr 그럼 왜 틀렸는지와 그것을 해결한 방법을 알아보겠습니다. .. 2024. 11. 15.
[백준 9655] 돌 게임 돌 게임(9655)문제 출처 : https://www.acmicpc.net/problem/9655 돌 게임은 다양한 방식으로 출제되고 있는 유명한 문제 입니다. 다양한 돌 게임중 가장 쉬운 형태의 문제 입니다.우리는 돌을 1개 혹은 3개를 가져갈 수 있습니다. 2개를 가져갈 수 있는 것이 아니라는 점을 기억해야 합니다. 이 때 두 사람은 최선을 다해 게임이 임합니다. 즉 자신이 지는 방향으로는 가지 않는다는 뜻입니다.문제 이해하기N개의 돌이 남았을 때 현재 상근이가 게임을 진행하면 누가 이길지를 출력하는 것이 우리가 만들 함수 입니다. 상근이의 차례에 돌이 1개 혹은 3개 남아있다면 무조건 상근이가 이깁니다. 반대로 2개 혹은 4개가 남아 있다면 무조건 창영이가 이기게 됩니다. 그럼 아래와 같은 함수를 .. 2024. 11. 14.
[백준 32068] 보물 찾기 문제 출처 : https://www.acmicpc.net/problem/32068보물 찾기(32068)이 문제는 2024 정보올림피아드 2차 초등부 1번 문제 입니다.문제 이해하기S를 중심으로 양쪽으로 한 칸씩 이동하면서 어느쪽 물건을 먼저 찾는지 확인하는 것이 문제입니다. 어렵게 왔다 갔다 하면서 시뮬레이션해야 하는 것 처럼 보이지만 사실 양쪽의 거리만 알면 수학적으로 쉽게 해결 가능합니다.그래도 일단은 문제에서 요구하는대로 풀어보고, 다음으로 수학적으로 풀어보겠습니다.코드 작성하기그럼 코드를 작성해 보겠습니다.입력 받기T = int(input())for _ in range(T): L, R, S = map(int, input().split()) print(solve(L, R, S))먼저 테스.. 2024. 11. 13.
[백준 31964] 반품 회수 반품 회수(31964)문제 출처 : https://www.acmicpc.net/problem/31964 이 문제는 2024년 정보 올림피아드 초등부 3번, 고등부 1번 문제 입니다.문제 이해하기N개의 집을 방문해서 반품을 회수하는데 걸리는 최소 시간을 구하는 문제 입니다. 각 집마다 물건을 내놓는 시간이 다르기 때문에 그 시간에 맞춰 잘 회수해야 합니다. 이 때 내놓은 물건을 빠르게 회수하는 것이 목적이 아니라 다시 택배 물건을 회수해서 빠르게 돌아오는 시간을 구해야 한다는 것이 핵심 입니다. 즉 물건을 언제 회수 하느냐는 문제가 아닙니다.우리가 알 수 있는 것은 물건을 시각 0에 모두 내어 놓아도 택배 트럭이 왔다 갔다 하는 시간만큼은 줄일 수 없습니다. N개의 집이 있기 때문에 N번 집까지 가는데 시.. 2024. 11. 12.
[백준 2631] 줄 세우기 문제 출처 : https://www.acmicpc.net/problem/2631 이 문제는 2001년 정보 올림피아드 중등부 2번 문제 입니다. 처음에는 정렬 문제라 생각했습니다. 제목도 정렬과 관련 있는 줄 세우기고, 아이들을 원하는 위치에 넣어 정렬의 횟수를 구하면 되는 문제인가 생각했습니다. 하지만 막상 이렇게 풀려고 하니 최소 횟수를 구해야 한다는 부분에서 막혔습니다.문제 이해하기최소 횟수를 구하는 것이 포인트이기 때문에 이것을 반대로 생각했습니다. 이동해야 하는 아이들을 생각하지 않고 이동하지 않는 아이들을 생각해 보았습니다. 이런 문제를 풀 때 반대로 생각하는 것이 더 쉬운 방향일 수 있기 때문에 한번쯤은 고려해 봐야 합니다. 가만히 있는 아이들을 생각해보니 이미 정렬되어 있는 아이들이 움직이.. 2024. 11. 11.
[백준 2193] 이친수 이친수(2193)문제 출처 : https://www.acmicpc.net/problem/2193 0과 1로 이루어진 이진수 중 특별한 성질을 가지고 있는 이친수를 찾는 문제 입니다. 이친수의 성질은 다음과 같이 두 가지 입니다.이친수는 1로 시작합니다.이친수는 1이 연속해서 나타나지 않습니다.이 두 가지 성질을 만족하는 이친수의 개수를 찾는 것 입니다.문제를 보면 DP의 Top-Down으로 문제를 해결할 수 있을것 같습니다. 함수를 만들고 그 함수의 특징을 다음과 같이 정의 하였습니다.solve(n, c)n은 이친수의 길이 입니다. 그리고 c는 마지막 숫자를 나타냅니다. 즉 0 아니면 1이 됩니다. 그리고 이 함수의 리턴값은 길이가 n까지이고 마지막 숫자가 c인 이친수의 경우의 수 입니다.코드 작성하기그.. 2024. 11. 10.
[백준 3745] 오름세 문제 출처 : https://www.acmicpc.net/problem/3745 주식의 오름세를 찾는 문제 입니다. 점점 커지는 형태의 부분 수열을 찾는 문제로 LIS를 찾는 문제와 같습니다. LIS 라는 것만 알고 있다면 알고리즘을 이용하여 쉽게 문제를 해결 할 수 있습니다.코드 작성다른 함정이 없어 보이기 때문에 바로 문제를 해결해 보겠습니다. LIS를 해결할 때 속도도 빠르고 모듈을 사용하여 오류도 없을만한 이분탐색 bisect를 사용하겠습니다.입력 받기while True: try: N = int(input()) arr = map(int, input().split() except: break이 문제는 테스트 케이스의 개수가 존재하지 않습니다. 따라서 .. 2024. 11. 9.
[백준 11057] 오르막 수 문제 출처 : https://www.acmicpc.net/problem/11057 간단한 DP 문제 입니다. 점화식이 바로 떠오른다면 문제 없지만 보통 점화식을 바로 떠올릴 수 없습니다. 그런 경우 Top-Down으로 먼저 문제를 해결하고 이를 Bottom-Up으로 바꾸는 것이 좋습니다.아직 Top-Down, Bottom-Up이 무엇인지 잘 모르겠다면 아래 링크를 통해 확인해 보시기 바랍니다.https://wikidocs.net/206429 09. 동적 계획법(다이나믹 프로그래밍)동적 계획법이라 불리는 DP(dynamic programming) 는 큰 문제를 작은 문제로 쪼개어 나가면서 문제를 해결하는 기법 입니다. DP에는 크게 두 가지 방법이 많이 사…wikidocs.net 문제 이해하기Top-Dow.. 2024. 11. 8.
[백준 2624] 동전 바꿔주기 문제 출처 : https://www.acmicpc.net/problem/2624 이 문제는 2002년 정보 올림피아드 중등부 2번 문제 입니다. 다빈치코딩 알고리즘 책에서 동전 문제들은 많이 다루었습니다.[백준 2091] 동전 : https://wikidocs.net/265710 06. 동전 [백준 2091][TOC] # 동전(2091) 문제 출처 : [동전](https://www.acmicpc.net/problem/2091) 지금까지 동전0, 동전2, 동전1 순으로 동전 문제를 …wikidocs.net문제 이해하기동전 문제들을 통해서 다양한 문제풀이 방법을 배웠습니다. 동전1(2293) 문제에서 경우의 수를 구하는 방법을 배웠고, 동전(2091) 문제에서 동전의 개수가 정해져 있는 문제를 풀어보았습니다.. 2024. 11. 7.
[백준 17616] 등수 찾기 문제 출처 : https://www.acmicpc.net/problem/17616 이 문제는 2019년 정보 올림피아드 초등부 2차 3번 문제 입니다. 문제 이해하기두 학생중 누가 더 잘했느냐를 종합하여 특정 학생 X의 등수 범위를 파악해야하는 문제 입니다.문제의 예제 입력3번을 보겠습니다. 5 5 11 32 33 43 54 5 해당 입력을 그림으로 표현하면 아래와 같습니다.1, 2번을 제외한 3, 4, 5번의 등수는 확실하게 알 수 있습니다. 하지만 1번이 1등인지 2번이 1등인지 알 수 없습니다. 따라서 1번의 범위는 최대 1등, 최소 2등이 됩니다.보통 DFS, BFS 문제를 풀 때 방향성을 고려하지 않는 양방향으로 구현하지만 이 문제에서는 단방향으로 해야 합니다. 단방향으로 자신보다 높은 성적을 .. 2024. 11. 3.
[백준 20187] 종이접기 2020년 정보 올림피아드 2차 대회에서 초등부 2번, 중등부 1번 문제였던 종이접기, 백준 온라인 저지에서 20187번을 풀어 보도록 하겠습니다.문제 출처 : https://www.acmicpc.net/problem/20187문제 이해하기어릴적에 종이를 얼마나 접을 수 있을지 꼬깃꼬깃 접었던 기억이 있습니다. 그렇게 종이를 접고 접다보면 최종적으로 1 X 1 크기의 정사각형이 됩니다. 여기에 4등분 하여 하나의 위치에 구멍을 뚫고 접었던 반대로 풀기 시작하면서 구멍이 뚫린 위치를 출력해주면 됩니다.마지막 1 X 1 정사각형의 위치는 어떻게 잡으면 될까요? 규칙적으로 접고 접었다가 다시 펼치는 알고리즘을 생각해보면 분할 정복으로 문제를 해결할 수 있습니다. 전체크기를 하나하나 줄여 나가다보면 제일 마지막.. 2024. 10. 15.
반응형