
이분탐색,매개변수탐색 알고리즘 방식으로 풀었습니다브루트 포스로 풀어야할지 다른 풀이 방식으로 풀어야할지 고민하기 위해서 먼저 입력으로 들어오는 수를 확인N은 최대 1000000 M은 2000000000 높이는 1000000000보다 작거나 같은 양의 정수 또는 0입력

매개변수 탐색 알고리즘 방식으로 풀었습니다입력 값을 보고 브루트포스로 푸는 것은 포기했다. -> 분명 시간 초과가 날 것이 뻔하므로!!나무 자르기랑 비슷한 문제 매개변수 탐색 알고리즘 방식으로 풀어야한다.이분 탐색 방법으로 풀면 틀렸습니다.라고 나온다 이 문제도 나무

풀이 방법: 브루트 포스 방식으로 모든 높이에서 걸리는 시간을 다 구한다음 가장 적은 시간이 걸리고 그중에서도 높이가 가장 높은 것을 선택하는 방법으로 풀었습니다 접근 방법: 2일동안 수많은 방법을 사용해봤습니다. 평균으로 높이를 미리 지정해서 땅을 파거나 땅을 쌓

DFS, BFS 알고리즘 공부를 위한 문제이므로 DFS, BFS 알고리즘 개념 공부 후 풀었습니다

1927번 최소힙 풀이 방법: 우선순위 큐를 사용하여 풀었습니다 접근 방법: 주어진 문제를 보고 먼저 큐를 사용해야하며, 오름차순 정렬을 해야하니 우선순위 큐를 사용해야겠다고 생각했습니다 변수 선언: PriorityQueue ans = 우선순위 큐 int N = 입력 받을 수의 개수 int x = 입력 받을 원소 값 풀이 과정: 1. 큐에 들어갈 ...

풀이 방법: Map을 활용하여 풀었습니다. 접근 방법: pair 형태로 주어진 것을 보고 Map을 사용하여 한쪽을 key로 한쪽을 value로 활용하면 되겠다고 생각했습니다. 변수 선언: int N = 입력 받을 사이트 주소의 수 int M = 찾으려는 사이트
해결 코드: 내림차순, 오름차순을 지속적으로 해야하고, 두 수의 합을 더해서 다시 저장하고 비교하는 형태의 문제라면 우선순위 큐를 사용하자해결 코드: 메모리 사용량이 극도로 작다면 배열보다는 우선순위 큐를 사용하자 공간복잡도를 N^2에서 n으로 줄일 수 있다해결 코드:
해결 코드: 자료구조 관련해서는 딱히 없으나, 문제 이해 측면에서는 좋은 문제였다이후 꼭 풀어보자!해결 코드: 이 때는 Character 형을 사용했는데, 지금에 와서 다시 보니까 String형으로 할 수 있을 것이라는 생각이 든다String vs Character형에
해결 코드: Deque의 일반적인 사용 구현체는 ArrayDeque<>()이다. 보통 위 구현체를 많이 사용하니까 숙지해두자해당 문제는 덱에 있는 값을 진짜 뒤집지 않고 덱의 기능인 앞에서 빼냐 뒤에서 빼냐를 활용했던 문제이다. 덱에 기능을 활용하면 자료구조 안에
백준 알고리즘 문제 중에서 해결하면서 힌트를 참고했거나, 어려웠던 문제들에 대한 정리입니다스택과 재귀를 같이 활용하는 문제였다 어떤 문제든지 여러 알고리즘을 같이 사용해서 해결해야할 수도 있음을 꼭 명심하자이 문제는 따로 base Condition을 지정할 수 없었다.
백준 특정 알고리즘 문제 풀이 후, 체득하기 위해 정리하는 글입니다. | 문제번호 | 제목 | 난이도 | |:-:|:-:|:-:| |2630|색종이 만들기|실버 2| |1074|Z|실버 1| |1992|쿼드트리|실버 1| |1780|종이의 개수|실버 2| |4779|

지금까지 N과 M 시리즈를 하면서 나온 부분을 모두 활용하면 쉽게 풀 수 있는 문제다.처음에는 본능적으로 모음과 자음을 분리해서 따로 처리해야겠다고 생각했으나, 재귀식을 생각하다보니 분리하는 것보다는 그냥 하나로 통합해서 구분하는 것이 낫겠다고 풀이 방식을 바꾸게 되었

일단 문자와 숫자가 섞여있기에 String형 2차원 배열 vs Char형 2차원 배열중 고민을 했다.문제의 목표와 진행 과정을 살펴보면, "."인 경우와 아닌 경우로만 구분하면 되기 때문에, String형 2차원 배열을 선택하였다어제 풀었던 방식은 총 8개의 if문을

체스에서 퀸이 이동할 수 있는 범위는 자신의 상하좌우와 대각선 방향이다위에서부터 차례대로 퀸을 둔다고 그림을 그려보면 차례대로 아래 행에서 둘 수 있는 퀸의 배치자리는 한정되게 된다.점점 두다가 내려가다보면 아예 못둬서 그 배치 순서가 끊기는 경우도 존재한다입력값의 범

|문제번호|제목|난이도| |:-:|:-:|:-:| |30089|새로운 문자열 만들기|실버 4| 30089번 새로운 문자열 만들기 해결코드: 고민의 시간과 해결 방법: 생각보다 까다로운 문제였다. 처음에는 투포인터 방식을 사용해서 해결하려 했으나, 테스트 케이스는 통

앞에서 빼서 뒤에 넣는다? 바로 자료구조 덱을 떠올렸다.주어진 입력값을 큐 형태로 덱에 넣어준다덱의 크기가 1보다 큰 동안에 반복해서 덱의 맨 앞의 값을 빼주고 덱의 맨 뒤로 맨 앞의 값을 빼서 넣어준다이때 3번의 두 진행 로직 사이에 덱의 크기를 한번더 확인해서 1이

예상 순위를 배열에 넣고, 오름차순 정렬을 해준다순위는 1부터 매기므로, 그 차이를 줄이려면 오름차순 정렬을 통해 가장 작은 값부터 순위를 매겨줘야한다이제 순회를 통해 주어진식인 배열의 값 - (i+1)의 절댓값을 ans에 넣어주자이때 주의할점은 ans는 long 타입

각 줄별로 배열을 만들고, 이전에 누른 pret과 현재 누르려고 하는 pret을 비교하는 방식으로 해결하면 된다.pret은 스택으로 해결하기로 생각하였고 선택한 자료구조 형태는 스택 배열이다배열의 크기는 line만큼 선언한 뒤, 각 스택 배열의 line인덱스마다 new

2차원 배열로 네트워크를 구성하였다. 2차원 배열은 각각 특정 네트워크와 그 네트워크와 연결된 네트워크 번호로 인덱스가 구성되고, 값으로는 그 인덱스와 연결되었는가? 이다0이면 연결되어 있지 않고, 1이면 연결되어있다. 이후 한가지 더 사용할 것인데, -1이면 탐색을

값과 위치를 모두 관리해야할 배열과 인덱스만을 가지고 있을 스택을 선택하였다.스택 하나만 사용해서 값을 넣고 관리하자니, 해당 위치를 알 수 있는 방법이 없고, 스택에 인덱스만 넣어서 관리하지니 값 비교가 안 되어서 로직 자체가 성립이 안 된다스택은 로직을 진행하는데에

A는 뒤에 B가 오는 경우, B는 뒤에 C가 오는 경우 없애줄 수 있지만, C는 뒤에 어떠한 수가 오더라도 지울 수 없다따라서 가장 먼저 지우는 것을 C로 선택하였다입력값을 큐에 넣는데 어차피 C는 지울거니까 A와 B만 큐를 만들어준다. 큐에는 각 인덱스 값을 넣어줄

카카오 출신 문제답게 지문도 길고 구현보다 이해하는데 시간이 더 걸린 문제이다.오른쪽 바구니는 스택형태를 띄고있다. 따라서 이를 담아줄 스택 자료구조를 하나 생성한다.주어진 moves 배열 길이만큼 순회를 하면서 주어진 문제를 해결할 로직을 실행하면된다. 따라서 mov

문자열을 가지고 하는 문제라 많은 에러와 디버깅을 통해 해결하였다split을 적극적으로 활용하는 문제였고, 추가적으로 map을 사용하여 더 쉽게 해결하였다terms를 문제에서 알파벳이 중복되지 않는다는 조건이 주어졌기 때문에 map을 사용하여 깔끔하게 저장하였다. (만

문제 자체에서 일단 큐가 나와서 의도가 큐를 쓰겠거니 하였고, 실제로 큐를 활용하는 문제였다. 배열을 순회하면서 각 배열의 원소들의 합을 각각의 sum 변수에 더해주고 큐에도 값을 추가해준다두 합이 같지 않은동안 순회를 반복하면서 같아질때를 찾는다. 생각한 방법은 한쪽

soo 문제집 완전탐색 easy 문제 52문제중 20문제를 풀었고, 그중 힌트를 참고한 문제 9개를 정리해서 학습 및 체득하려는 목적으로 작성했습니다. 입력값이 없다. 그냥 순회로만 풀 수 있는 쉬운 문제다.1보다 큰 자연수를 찾으라 했으니 2부터 시작해서 최대 100

이 문제는 두가지 방법으로 접근할 수 있다. 첫번째는 직접 문자열을 주어진 조건대로 구현하는 방식이다두번째는 정규표현식을 이용하는 방식이다. 정규 표현식을 사용하면 엄청 쉽게 해결할 수 있는데, 이 문제 해결에서는 정규 표현식을 사용하였다.주어진 조건에 맞춰서 다음 정

이 문제는 유니온파인드를 이용하여 해결하는 문제이다. 거짓말을 아는 사람이 파티에 참여하면 그 파티의 사람들은 다 진실을 아는 사람이 되므로, 합집합 형태의 꼴이 된다따라서 유니온 파인드를 이용해서 문제를 해결하였다진실을 아는 파티의 수를 세어주기 위해서 리스트 배열을

|문제번호|제목|난이도| |:-:|:-:|:-:| |2467|용액|골드 5| 2467번 용액 해결 코드: 고민의 시간과 해결 방법: 양끝점의 합이라는 주어진 문제를 보고 투포인터와 이분탐색이 떠올랐다. 하지만 이분탐색은 해당 문제를 해결하는데 적합한 방법이 아니다.

일단 정렬이 불가능하다. 그래서 생각한 방법은 이분탐색인데, 이것 접근도 문제 해결의 실마리를 제공하지는 않는다다음으로 생각한 방법은 투포인터인데 양끝에 놓는냐 아니면 처음에 둘다 놓느냐를 고민하였다. 문제를 보니 처음에 둘다 놓으면서 차근차근 포인터를 늘려나가는 것이

일단 입력수가 굉장히 작고, 모든 경우의 수를 해야하는데 방향이라는 분기가 존재한다따라서 입력수가 굉장히 작아 재귀로 풀 수가 있고, 또한 방향이라는 분기가 존재하니까 백트래킹을 사용해서 풀면 되겠다고 접근하였다종료조건은 친절하게 5회라고 주어졌으니 depth가 5일

해당 문제는 BFS/DFS로 풀수도 있지만, 코테 스터디에서 알게된 새로운 풀이 방법이 존재하여 해당 방법으로 풀었다바로 유니온파인드를 이용하여 해결하는 방법이다.유니온파인드는 합집합이다. find에서는 각 노드의 루트 노드를 찾고 union에서는 두 루트노드가 다를

soo 문제집 완전탐색 easy 문제 남은 32문제중 22문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위한 11개의 문제를 재풀이해서 학습 및 체득하려는 목적으로 작성했습니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |18868번|멀티버스 I|브론

코딩테스트 대비 알고리즘 개념 학습 및 알고리즘 구현 후, 정리하기 위해 작성하는 글입니다위상정렬은 그래프와 관련된 알고리즘이다.위상정렬은 순서가 정해져 있는 작업을 순서대로 수행해야할 때, 그 순서를 정해주기 위해 사용하는 알고리즘이다위와 같이 순서가 정해져 있다고

위상 정렬 학습 후, 해당 문제를 해결하였다기본 위상정렬 구현에서 한가지를 더 생각하고 문제를 풀면 된다먼저 주어진 그래프는 리스트 배열로 구현해주면 된다입력받은 시간은 진입차수가 아니다. 진입차수는 위 3번에서 그래프로 구현할 때, second의 진입차수 배열 인덱스

일단 이름 그대로 트리로 해결하는 문제이고.. 결국 내가 선택하게 될 가장 큰 가중치의 두 노드는 결국 모두 탐색하면서 발견을 해야한다또한 중복되지 않도록 해야하므로 visted 방문 배열을 활용하는 백트래킹으로 풀도록 접근하였다현재 트리는 방향이 없는 그래프이다. 따

개인적으로 백트래킹 구현에서 많이 어려웠던 문제였다.기능 구현은 간단하다. 조금 난해한게 있다면 33 배열에서 찾는 것 정도? 하지만 이것도 그래프를 생각해보면 쉽게 (row/3)3 ~ (row/3)\*3 + 3범위 내에서 진행된다는 것을 알 수 있다. 물론 col도

soo 문제집 완전탐색 easy 문제 남은 10문제중 7문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위한 4개의 문제를 재풀이해서 학습 및 체득하려는 목적으로 작성했습니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |3085번|사탕 게임|실버 2|

soo 문제집 BFS/DFS easy 문제 중 46문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위해 해당 글을 작성합니다. 10문제씩 총 4~5 글로 나눠서 작성할 계획입니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |16956번|늑대와 양|실버

soo 문제집 BFS/DFS easy 문제 중 46문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위해 해당 글을 작성합니다.10문제씩 총 4~5 글로 나눠서 작성할 계획입니다.주어진 나이트의 이동 경로를 탐색 범위로 지정하고 BFS 탐색을 진행하면 된다시작지점부

|문제번호|제목|난이도| |:-:|:-:|:-:| |8980번|택배|골드 1| |10775번|공항|골드 2| |2293번|동전 1|골드 5| |16236번|아기 상어|골드 3| 8980번 택배 해결 코드: 해결 키포인트: 고민/풀이흐름: 링크: 8980번 -

soo 문제집 BFS/DFS easy 문제 중 46문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위해 해당 글을 작성합니다. 10문제씩 총 4~5 글로 나눠서 작성할 계획입니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |2599번|짝 정하기|실버 3

우선순위 큐를 활용하자! 이때 우선순위 큐를 두개 사용해서 상태를 관리하자!그리디하게 푸는 문제라서 최적의 경우를 찾으면 된다이때 최적의 경우는 가방을 오름차순해서 작은 것부터 가능한 모든 보석을 찾아 가장 비싼 보석부터 넣으면 된다!각 보석의 정보를 관리할 클래스를

soo 문제집 BFS/DFS easy 문제 중 46문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위해 해당 글을 작성합니다.10문제씩 총 4~5 글로 나눠서 작성할 계획입니다.BFS와 정육각형 + y좌표가 홀수/짝수에 따른 탐색 구분을 생각해서 풀어야한다또한 바

우선순위 큐를 사용해서 시간복잡도를 줄이고, 입력 단계에서 누적시간을 계산하여 우선순위 큐에 넣는 것이 해결 키포인트주어진 조건을 위해 우선순위 큐를 사용하였다. 시간이 같을 경우 색깔을 기준으로 오름차순 정렬하고 다른 경우 시간을 기준으로 오름차순 정렬한다.색깔을 기

soo 문제집 그리디 easy 문제 중 68문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위해 해당 글을 작성합니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |13170번|떨어진 수정|실버 4| |15904번|UCPC는 무엇의 약자일까?|실버 5|

차례대로 넣는 것이기 때문에 정렬하면 안된다또한 차례대로 넣는 것을때 최대 무게이기 때문에 그리디하게 풀면된다n이 0일 경우 입력이 없으므로 그냥 0을 출력한다n이 0이 아닐 경우 이제 입력을 받는다먼저 개수를 세어주는 count는 1로 선언한다. 일단 하나의 박스에는

사다리 줄을 긋는다는 건은 두 수의 위치를 바꾸는 것이다 라는 개념을 파악해야한다선택정렬과 버블정렬을 합쳐서 푸는 것이 해결의 키 포인트다.해당 문제는 선택정렬과 버블정렬을 이용하여 해결하는 문제다.따라서 정렬에 대한 학습이 필요해 선택정렬, 버블정렬 알고리즘을 정리하

정렬 알고리즘 정리 백준 사다리 문제에서 다뤘던 삽입정렬과 버블 정렬을 제외하고 아래 8가지 정렬에 대해 정리하고 직접 구현해보려고 한다

정렬 알고리즘 정리 백준 사다리 문제에서 다뤘던 삽입정렬과 버블 정렬을 제외하고 나머지 정렬 알고리즘에 대해 정리하고 직접 구현해보려고 한다 2~3개씩 정렬 알고리즘을 정리할 계획이다. 힙 정렬 말 그대로 힙 자료구조를 활용하여 정렬하는 방법으로 힙 자료구조에 대한

백준 사다리 문제에서 다뤘던 삽입정렬과 버블 정렬을 제외하고나머지 정렬 알고리즘에 대해 정리하고 직접 구현해보려고 한다퀵 정렬은 벗을 하나 두고 두개의 부분리스트로 나누어서 정렬하는 방식이다피벗의 왼쪽에는 피벗보다 작은 값들이 있고 오른쪽은 피벗보다 큰 값들이 존재한다

soo 문제집 그리디 easy 문제 중 68문제를 풀었고, 그중 힌트를 참고한 문제 및 정리하기 위해 해당 글을 작성합니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |5545번|최고의 피자|실버 3| |11508번|2+1 세일|실버 4| |14247번|나무

soo 문제집 DP easy 문제 중 58문제를 풀었고, 그중 힌트를 참고한 문제 또는 다시 풀면 좋은 문제를 정리하기 위해 해당 글을 작성합니다.A는 이전 B의 개수B는 이전 A의 개수 + B의 개수dpAi-1 = dpBi-1dpBi-1 = dpAi-1 + dpBi-

soo 문제집 DP easy 문제 중 58문제를 풀었고, 그중 힌트를 참고한 문제 또는 다시 풀면 좋은 문제를 정리하기 위해 해당 글을 작성합니다.처음은 자기자신을 넣어준다 dp0 = arr0이후부터는 이전 dp와 현재 자신을 곱한 값과 현재 자신을 비교하여 더 큰 값

soo 문제집 DP easy 문제 중 58문제를 풀었고, 그중 힌트를 참고한 문제 또는 다시 풀면 좋은 문제를 정리하기 위해 해당 글을 작성합니다. |문제번호|제목|난이도| |:-:|:-:|:-:| |3976번|역습|실버 2| |9657번|퇴사|실버 3| |10211

soo 문제집 DP easy 문제 중 58문제를 풀었고, 그중 힌트를 참고한 문제 또는 다시 풀면 좋은 문제를 정리하기 위해 해당 글을 작성합니다.dpi = (dpi-1 + dpi-1) % MODdpi = (dpi-2 + dpi-2) % MODdpi = (dpi-3 +

H는 모눈종이의 높이, W는 모눈종이의 너비다N은 스티커의 개수, R은 주어진 각 스티커의 높이, C는 스티커의 너비다해당 문제는 스티커를 두개만 골라서 모눈종이를 덮는 경우를 구하고, 그중 가장 큰 넓이를 정답으로 출력하는 문제다제일먼저 떠올릴 수 있는 방법은 브루트

N은 정수의 개수, S는 경우의 수를 구하기 위해 비교해야할 기준 수이다이후 n만큼 들어오는 입력은 부분수열의 대상이 되는 정수 원소들이다부분수열의 이해를 하지 못하면 단순 이중포문으로 풀고 틀릴 수 있다부분수열은 순서에 상관없이 주어진 원소에서 자유롭게 짝을 지어 하

문제 탐색하기 입력 자료 정리하기 5x5만큼의 숫자 입력이 주어지는데 이 값들은 배열에 들어갈 좌표 값들이다. 이 자료들은 int타입의 arr 2차원 배열에 보관한다 해결방법 추론 좌표평면이 나오면 다음 방법을 생각해볼 수 있다 (브루트포스, 그래프 완전탐색[DFS/BFS]), DP) 주어진 좌표는 55로 고정되어 있다. 또한 이후 시간복잡도를 계산했을...

문제 탐색하기 입력 자료 정리하기 처음 주어지는 k는 이후 주어질 부등호 문자의 개수이다 주어지는 부등호는 k개만큼 주어지며, 이후 탐색과정의 조건으로 사용된다 해결방법 추론 먼저 비교가 될 숫자는 0~9이므로 부등호마다 0부터 9까지의 수를 다 넣어보며, 조건에 해당되도록 만들면 될 것이다. 방식에 있어서는 고민을 해야하는데, 만약 가능한 경우가 단 한...

문제 탐색하기 입력 자료 정리하기 T는 문제를 반복할 테스트케이스의 개수이다 H은 이후 들어올 문자들을 보관할 배열의 가로길이, W는 배열의 세로길이이다 이후 들어오는 문자들은 조건으로 사용된다. #은 탐색조건, .은 무시될 탐색조건이다 해결방법 추론 이전에 숫자판

문제 탐색하기 입력 자료 정리하기 N과 M은 각각 배열의 세로와 가로 길이이다 이후 들어오는 값은 상어의 위치정보가 담겨있는 정보다 해결방법 추론 좌표평면 문제인데 n과 m의 크기가 작아 dp 사용 없이 BFS를 사용하면 되겠다고 생각하였다 브루트포스로 시작지점을 찾

문제 탐색하기 입력 자료 정리하기 N은 지도의 가로 세로 길이다 이후 들어오는 입력값들은 지도의 각 좌표 위치에 해당하는 값들을 의미한다. 이때 1은 탐색해야되는 값이며, 0은 탐색할 필요가 없는 값이다. 해결방법 추론 이번 문제도 좌표 평면 문제다. 일단 크기 n이 최대 25이므로 dp는 필요 없다. 이어서 상하좌우 탐색을 하면서, 붙어있는 1의 개수를...

입력값 A,B,C는 3개의 물통에 담을 수 있는 최대치다이전에 풀었던 좌표평면이나 브루트포스로 풀 수 있는 문제와는 다른 특이한 문제다그리디나 dp 혹은 다른 알고리즘을 활용하는 문제일까? 생각을 하고 해당 문제에 접근해보았다결국 이 문제를 풀기 위해서는 물을 A,B,

문제 탐색하기 입력값 관리하기 T는 테스트 케이스의 개수, n과 m은 각각의 배열의 크기다 이어서 오는 값들은 각각 n크기의 배열과 m 크기의 배열의 원소다. 이 입력을 앞서 받은 T의 크기만큼 반복한다 목표 정리 두 배열이 주어졌고 n의 배열의 원소와 m 배열의 원소들과 비교했을 때, 그 절댓값 차이가 가장 작은 값을 구해야한다 이어서 그 값들을 모두 ...

문제 탐색하기 입력값 관리하기 N은 지방의 수, 이후 n만큼 들어오는 입력값은 각 지방별로 배정된 상한 예산이다 이후 들어오는 m은 전 지방에 배분할 수 있는 현재 예산 수다 해결방법 추론 각 지방별로 배정된 예산들중 가장 큰 예산을 찾고, 그 예산부터 1씩 감소시켜나가는 브루트 포스 방법을 가장 먼저 떠올릴 수 있다 하지만 이 방법은 m이 10억이 되기...

문제 탐색하기 입력 자료 정리 N은 이후 입력값으로 들어올 강의의 수, M은 기준이될 블루레이의 수다 이후 들어오는 값은 n만큼 들어오며 각 강의의 길이를 의미한다 해결방법 추론 i부터 j까지 모든 강의를 더하면서, 그 구간의 개수도 M을 맞춰야하는 문제이다 N과 M의 최대 입력값을 보았을 때, 브루트포스로는 절대 불가능할 것이라고 쉽게 생각할 수 있었다...

문제 탐색하기 입력 자료 정리 n은 입국심사대의 개수, m은 대기줄에 있는 사람의 수다 이어서 들어오는 n개의 입력은 각 입국심사대별 소요시간이다 해결방법 추론 처음에는 문제를 읽고 그리디와 시뮬레이션을 생각하였다 하지만 입력값인 n의 크기를 보니 그 방법은 불가능할 것이라 생각하였고, 문제를 다시 읽게 되었다 결국 심사 받는데 걸리는 총 시간을 알게 되...

문제 탐색하기 입력 자료 정리 n은 계단의 개수, 즉 입력값의 수다. 이후 들어오는 입력값들은 각 계단의 수다. 해결방법 추론 이 방법을 완전탐색으로 해결하려면 백트래킹으로 해결할 수 있을 것처럼 보인다 하지만 n의 최대 입력값이 10000이기 때문에 시간제한에 걸릴 것이고, 결국 다른 방법을 선택해야 했다 그래서 선택한 방법은 DP이다 dp를 이용해서 ...

문제 탐색하기 입력 자료 정리 n은 수열의 길이를 의미한다 이후 들어오는 값은 수열의 각 원소를 의미한다 해결방법 추론 브루트포스 방식으로 문제를 풀려면 원소의 각 요소를 다른 요소와 모두 탐색해봐야한다 이 방식으로 하면 입력값 n이 최대 1000이기 때문에 시간초과

n은 포도잔의 개수로, 탐색을 할 원소의 전체 개수다이후 들어올 값은 포도주 양으로 탐색할 각 원소의 수를 의미한다가장 간단한 방법은 완전탐색이다. 브루트포스, 백트래킹 등 다양한 방법이 있는데,이 문제를 풀려면 백트래킹을 선택할 수 있을 것이다하지만 n의 최대 입력값

문제 탐색하기 입력 자료 정리 N은 도로의 가로크기, M은 도로의 세로크기다 k는 앞으로 주어질 공사된 지점의 도로 개수다 이후 들어오는 값은 a,b / c,d로 지점이 나뉘며 a,c는 가로 좌표이고 b,d는 세로 좌표다 해결방법 추론 좌표평면이니 BFS/DFS중 하나를 사용해서 해결할 수 있겠다고 생각했다 문제에서 구하는 것은 최단거리로 갈 때, 목적지...

문제 탐색하기 입력 자료 정리 N은 이후 입력으로 들어올 문자열의 길이고, k는 등장하는 모든 사람의 양옆으로 햄버거를 선택할 수 있는 최대 거리다 이후 n의 크기만큼 들어오는 문자열은 사람과 햄버거가 섞여있다 해결방법 추론 시간제한도 0.5초, n의 크기도 2만으로 완전탐색은 절대 하지 말라는 문제로 보인다 DP를 써야하나 고민했을 때, 뭔가 누적을 하...

n은 입력으로 들어올 건물의 높이의 개수이다이후 들어오는 값들은 각 건물의 높이값이다.단순히 이중포문으로 해결하는 것이 가장 빠른 방법이겠지만, n의 최대 입력값이 10만이기 때문에 브루트포스는 불가능하다각 건물마다 오른쪽에서 바라봤을 때와 왼쪽을 바라보았을 때의 최댓

T는 이후 입력이 진행될 테스트케이스의 개수이다n은 이후 들어올 명령어 집합의 개수이다n만큼 들어오는 각 두 수의 앞은 명령어, 이후는 명령어에 맞는 수이다문제의 이름이 이중 우선순위 큐이기 때문에, 쉽게 우선순위 큐를 떠올릴 수 있었다우선순위 큐의 remove를 사용

문제 탐색하기 입력 자료 정리 n은 이후 들어올 문제들의 입력 개수를 말한다 이후 들어오는 문제는 두가지 StringTokenizer로 이루어져 있다. 첫번째 값은 문제 번호, 두번째 값은 문제 난이도다 m은 이후 들어올 명령어의 입력 개수를 말한다 첫번째 값은 명령어고, 이후 들어오는 값은 add 일경우, 문제번호와 난이도이다 그 이외의 명령어는 그에 맞...

문제 탐색하기 입력 자료 정리 N은 이후 입력으로 들어올 나무의 길이와 자라는 길이의 입력 개수이며, 또한 나무를 잘라서 구하기 위해 탐색해야하는 일지아디 이후 들어오는 입력은 각각 나무의 길이와 자라는 길이다 해결방법 추론 주어진 문제를 보았을 때, 나무를 잘라서

문제 탐색하기 입력 자료 정리 입력으로 들어오는 N은 정수지만 주어진 문제를 해결하기 위해 문자열로 보면 된다. 해결방법 추론 선택지가 두개고, 각 원소를 하나씩 뽑아서 선택하여 모든 경우의 수를 다 맞춰본 뒤, N과 같은 경우 개수를 세어주어서 출력하면 되는 문제로 보인다 백트래킹을 사용하면 쉽게 해결할 수 있겠다고 생각하였다 단순히 문자열의 길이를 앞...

문제 탐색하기 입력 자료 정리 N은 입력으로 들어오는 사람들의 수이다 각 입력의 첫번째는 시작시간, 두번째는 종료시간이다. 해결방법 추론 먼저 시간에 대한 관리는 새로운 클래스를 만들어서 한 뭉탱이로 관리를 해줄 것이다 그리고 배열에 입력을 받아 시작시간이 빠른 사람

문제 탐색하기 입력 자료 정리 n은 타일의 가로 길이로, 탐색의 범위가 된다 a와 b는 각각 2x1크기와 2x2크기의 바닥 개수를 의미한다 이후 들어오는 a와 b의 각 원소들은 예쁨의 크기를 의미한다 해결방법 추론 예쁨의 크기의 최댓값을 구해야하는 문제다. 다시 말하면, 예쁨의 크기가 큰 타일만을 골라서 예쁨의 크기의 합이 최대로 되게 해야한다 예쁨의 크...

문제 탐색하기 입력 자료 정리하기 T는 게임의 수, 즉 테스트케이스 개수다 이어서 오는 문자열은 탐색에 대상이 될 문자열이다 k는 정답을 찾는데 기준이 될 숫자이다. 해결방법 추론 어떻게 문제를 풀어야할까 고민하던 와중, 두가지에서 힌트를 얻어 해결방법을 추론할 수 있었다 먼저 개수를 세어서 k개 될때를 찾아야한다. 주어진 알파벳 문자열이 반복되며 개수를...

문제 탐색하기 입력 자료 정리 N은 입력으로 들어오는 유치원생의 수이다 k는 나눠야할 조의 수로 비용 계산의 기준이된다 이후 들어오는 값은 각 유치원생의 키로 오름차순 정렬되어 들어온다 해결방법 추론 비용이 최소가 되게 하기 위해서는, 가장 작은 학생과 큰 학생의 키차이가 가장 작게 해야한다 그렇게 하기 위해서는 오름차순 정렬 한뒤, 앞에서부터 n/k명만...

n은 들어올 단어의 개수로, 이 문제에서는 테스트 케이스 역할이다이어서 들어오는 문자열은 탐색할 문자 집합이다간단하게 백트래킹으로 원하는 결과를 얻을 수 있다고 생각하였다중복을 제거하고 정렬을 하기 위해 TreeSet 자료구조를 사용하였다백트래킹으로 가능한 모든 경우를

문제 탐색하기 입력 자료 정리 C와 R은 탐색 범위의 기준이 될 가로와 세로의 길이다 k는 탐색의 종료 기준이 될 값으로 문제에서 찾고자 하는 위치다. 해결방법 추론 C와 R의 범위를 벗어나지 않으며, 둘다 최대 입력값이 1천으로 이중포문으로 쉽게 해결할 수 있는 문제다 따라서 문제 해결 방법으로 브루트포스를 선택하였다 방법은 브루트포스지만 살짝 변형을 ...

문제 탐색하기 입력 자료 정리 n은 찾고자 하는 줄어드는 수의 번호로 리스트의 찾고자하는 인덱스값이 될것이다 해결방법 추론 놀랍게도 백트래킹으로 가능하다 최대 가능수가 9876543210이기 때문이다 줄어드는 수를 구하기 위해 0~9의 수를 각 원소로 두고, 선택하냐 안하냐로 수를 만들어 나가면 될 것이라 생각한다 대신 줄어드는 수를 만들기 위해 9876...

문제 탐색하기 입력 자료 정리하기 r은 세로 길이, c는 가로 길이며, 이후 들어오는 원소 값들은 char 타입의 문자 원소로 탐색의 구분이 될 값이다 해결방법 추론 이해하면 정말 쉬운 문제다. 50년동안 1년단위로 탐색하는 것도 아니고, 육지 한칸 주위에 바다가 3칸 이상 있으면 50년 후에 육지가 되는 것이 끝이다 따라서 이중포문을 돌면서 BFS의 4...

문제 탐색하기 입력 자료 정리 n은 사진들의 개수로 검증으로 활용될 입력값이다 k는 이후 들어오는 원소값들의 개수로 시뮬레이션의 횟수가 될 것이다 이후 들어오는 각 원소는 추천하는 후보의 번호로 규칙을 위해 활용될 원소들이다 해결방법 추론 1~4번까지만 보면 먼저 입력값들을 다 기록해두고, 우선순위 큐 하나를 활용하는 간단한 자료구조 문제라고 생각했다 하...

문제 탐색하기 입력 자료 정리 n은 쌓아올릴 주사위의 개수이다. 이어서 들어오는 주사위는 각 면의 숫자로 A,B,C,D,E,F 순서로 입력된다 해결방법 추론 한참을 고민한 후에, 이 문제가 브루트포스로 해결할 수 있음을 알게 되었다 n개의 주사위와 최대 1만개 입력이 들어올 수 있다고 해서 가능할까 라는 생각을 했는데, 우리의 목표는 주사위의 윗면/아랫면...

문제 탐색하기 입력값 자료 정리 입력값 N은 노드의 개수를 의미하면서도, 노드의 최대 번호를 의미한다 이후 들어오는 두 입력값은 노드의 번호로 서로 연결된다는 것을 의미한다 해결방법 추론 일단 노드는 양방향으로 연결시켜준다. 자식으로 부모를 볼 수도 있고, 부모로 자식을 볼 수도 있기 때문이다 트리의 루트가 1이라는 조건이 주어졌다면, 루트 노드부터 시작...

문제 탐색하기 입력 자료 정리 n은 격자판의 세로길이, m은 격자판의 가로길이다 해결방법 추론 n과 m이 각각 25라면 이야기가 달라지겠지만, 다행히도 nxm의 최대값이 25이다 따라서 백트래킹으로 각 격자판을 선택했을때랑 안했을 때를 구분하도록 하고, 격자판이 조건을 만족하는지 체크하면 쉽게해결할 수 있을 것이라 생각하였다 시간복잡도 계산 시간복잡도는...

문제 탐색하기 입력 자료 정리 T는 테스트 케이스의 개수다 이어서 들어오는 11 x 11 크기의 입력은 각 선수별로 포지션에서의 능력치이다 해결방법 추론 11^11이면 백트래킹으로 힘들것이라 생각했는데 놀랍게도 0을 건너뛸 수 있고, 적합한 포지션의 수가 최대 5개라고 하였기에 11^5로 줄어든다 따라서 백트래킹으로 탐색한 다음, 모든 경우의 수를 다 구...

문제 탐색하기 입력 자료 정리 n은 나무 재료의 세로 크기, m은 나무 재료의 가로 크기다 그다음 들어오는 값들은 각 나무 재료 한 칸의 원소값이다 해결방법 추론 n,m이 둘다 5이기 때문에 백트래킹으로 쉽게 해결할 수 있을 것이라 생각하였다 백트래킹을 하면서 그 합을 리스트에 저장하고 내림차순 하여 첫번째 값을 출력한다면 정답이 될 것이다 나무재료를 n...

문제 탐색하기 입력 자료 정리 n은 노드의 개수, m은 간선의 개수, k는 최단거리로 검증에 활용되는 입력이며, x는 탐색을 시작할 노드의 번호다 이후 들어오는 m개의 간선은 첫번째 노드 번호에서 두번째 노드 번호로 가는 단방향 간선이다 해결방법 추론 가중치가 1이라는 것에 주목하여 해결방법을 생각하였다 가중치가 다르다면 다익스트라로 풀어야겠다는 생각을 ...

N은 문자열의 최대 길이로, 백트래킹의 base condition 조건이 된다1,2,3중 하나를 선택하는 백트래킹을 하면 된다고 생각했다단 좋은 수열을 만족시킬 때, 백트래킹을 진행한다좋은 수열을 검증하는 로직과 백트래킹으로 해결할 수 있을 것이라고 생각했는데...문제

문제 탐색하기 입력 자료 정리 n은 노드의 개수, m은 간선의 개수다 이어서 들어오는 값은 차례대로 출발지, 도착지, 비용이다 마지막은 탐색하고자 하는 시작지점과 도착지점이다 해결방법 추론 노드와 간선이 존재하면서, 간선에 가중치가 있고, 이때 최소비용 즉, 최단거리

문제 탐색하기 입력 자료 정리 n과 m은 각각 노드의 개수와 간선의 개수다. 이 입력 모두가 0이면 전체 입력을 종료한다 이후 들어오는 두 값은 각각 노드의 번호이며, 둘간의 간선이 연결되었다는 의미다 해결방법 추론 트리의 성질을 이용하는 문제로 보인다. 일단 기본적으로 노드 n개가 있으면 간선의 개수는 n-1이하여야 한다고 알고 있다 또한 사이클이 발생...

문제 탐색하기 입력 자료 정리 T는 정답을 위해 확인하게 될 기준 문자열이다 n은 이후 들어올 문자열의 개수다 이후 들어오는 값은 가격과 비교 문자열이다 해결방법 추론 입력 최대 값이 매우 작기 때문에, 브루트포스로 해결할 수 있을 것이라 생각하였다 단순 포문으로 할 수 있을까 생각했는데, 그러기에는 구현이 복잡해질 것이라 판단하였고 백트래킹으로 해야겠다...

문제 탐색하기 입력 자료 정리 입력값 N은 이후 들어오는 징검다리 입력값의 개수이다 N만큼 들어오는 입력은 각 인덱스의 이동 배수이다 다음 들어오는 두 값은 시작 지점과 끝지점이다. 이때 시작지점과 끝지점의 경우 '몇 번째'로 되어있기 때문에, 인덱스를 1부터 시작할 필요가 있다. 해결방법 추론 현재 위치에서 끝지점에 도달할 때까지, 적혀있는 숫자만큼의 ...

문제 탐색하기 입력 자료 정리 처음 들어오는 두 값은 각각 가로 길이와 세로길이다. 가로줄 세로줄이 아닌 길이이므로 이후 배열 선언할때, 뒤집어서 크기를 초기화해야한다 이후 들어오는 h x w 만큼의 입력은 각 인덱스의 원소값이다. 들어오는 원소값은 1과 0으로 고정된다. 이때 1은 땅이고 0은 물로, 1이 탐색의 대상이된다 해결방법 추론 문제를 보자마자...

문제 탐색하기 입력 자료 정리하기 N은 버섯 농장의 가로 세로 길이이다 M은 심을 수 있는 버섯의 개수다 K는 하나의 버섯이 줄 수 있는 영향력이다 이후 들어오는 값은 N X N 크기의 배열의 각 인덱스 원소이다. 이때 0은 버섯을 심을 수 있는 곳으로 탐색체크의 대상이 되며, 1은 버섯을 심을 수 없는 곳으로 탐색하지 않는 곳이다. 해결방법 추론 버섯의...

문제 탐색하기 입력 자료 정리 입력값 n은 색이 칠해져있는 그리드의 가로 세로 길이다 이후 n x n 만큼 들어오는 값은 각 그리드의 원소다. 이때 원소의 타입은 String 또는 char가 될 수 있으며 편의상 char로 받으면 될 것이다 이어서 원소의 종류는 3가지다 R, G, B 이 3가지에 대해서만 생각하면 된다 해결방법 추론 문제를 봤을 때, 4...

문제 탐색하기 입력 자료 정리 첫번째 입력값은 이후 들어올 입력값의 수인 테스트케이스 수이다 이후 들어오는 테스트케이스 수만큼의 입력값들은 몇번째 인덱스에 있는 dp 배열의 값을 출력할지에 대한 값이다 해결방법 추론 이 문제의 풀이는 두가지를 생각할 수 있다. 가장 쉬운 첫번째 방법은 4를 나타내는 방법은 7가지가 있다는 문제를 보고, 1, 2, 3일때는...

입력으로 들어오는 두 크기는 n과 m이며 n은 탐사 범위의 세로 크기, m은 가로크기다이어서 들어오는 값들은 각 인덱스의 원소이다한번에 오른쪽, 아래쪽으로만 갈 수 있으며, 자원이 있는 경우 자원을 채취할 수 있다고 한다그렇다면 내가 직접 오른쪽이나 아래쪽으로 가는 경

n은 이후 들어올 집의 개수로 dp의 세로 길이다총 n개의 줄이 입력값으로 들어온다. 이때 각 줄의 입력값 개수는 3개이다각 줄의 3개의 원소는 현재 줄의 집을 색칠할 색상의 비용을 의미한다가장 단순하게 푸는 방법은 백트래킹으로 푸는 방법일 것이다. 3개의 선택지중 가

입력값 n은 이후 들어올 입력 줄의 개수이다각 줄마다 3개의 입력값이 들어오며, 각 인덱스의 원소를 의미한다이 원소는 최댓값과 최솟값을 구하는데 사용될 비용이다이전 RGB 문제처럼 각 줄마다 3칸으로 고정되어 있기 때문에, DP를 활용하여 이전 값을 누적해나가고, 마지

문제 탐색하기 입력 자료 정리 처음 들어오는 m은 전체 배열의 크기를 말한다. 이때 m,m까지의 좌표를 말하기에 m+1이 배열의 크기이다 이어서 들어오는 n은 이후 진행할 시뮬레이션의 진행횟수이다 n개의 입력이 들어오는데, 첫번째는 명령어, 두번째는 그 명령어의 옵션이다 TURN의 옵션은 2가지로 0이면 왼쪽으로 1이면 오른쪽으로 90도 회전한다 MOVE의...

입력값 n은 이후 들어오는 숫자야구 게임의 수다이후 들어오는 3가지 값은 각각 세자리 숫자, 스트라이크 수, 볼의 수이다숫자 야구 규칙을 생각했을 때, 나올 수 있는 경우의 수는123 ~ 987까지이다.위 경우의 수는 중복되지 않는 숫자들의 최소~최대 범위이다이 범위

19 x 19크기의 입력값이 주어지며, 0,1,2중 하나가 주어진다0은 그냥 빈칸이고 1과 2는 각각 사람이 둔 바둑알이다좌측 상단부터 시작해서 우측 하단까지 탐색하는 과정에서 바둑알이 발견된다면 그 주위에 같은 바둑알이 있는지 확인하여총 5개의 바둑알 이 연속적으로

문제 탐색하기 입력 자료 정리 n은 트럭의 수, w는 다리의 길이, l은 다리의 최대하중을 의미한다 이어서 들어오는 n개의 입력은 각각 트럭의 하중을 의미한다 해결 방법 추론 다리 한칸 한칸의 무게 상태를 관리하고, 트럭이 모두 건너가서 다리가 빌때까지 시뮬레이션을 돌리면 되겠다고 생각하였다 시뮬레이션 한번당 단위는 시간으로 체크하며, 각 다리 한칸한칸을...

문제 탐색하기 입력 자료 정리 해결방법 추론 시간복잡도 계산 코드 설계하기 입력값 상태 관리 구현 코드 설계 출력값 설계 정답 코드 (1회차 시도 성공!) 문제 링크 17266 - 어두운 굴다리

문제 탐색하기 입력 자료 정리 해결방법 추론 이분탐색 방법 고민 시간복잡도 계산 코드 설계하기 입력값 상태 관리 이분탐색 설계 출력값 설계 정답코드 (1회차 시도 성공!) 문제 링크 11663 - 선분 위의 점

입력값 n은 나무의 개수, m은 필요한 나무 높이 합의 최소 수이다이어서 n만큼 들어오는 입력값들은 각각 나무의 높이이다m의 최대 값을 보면 이 문제는 이분탐색으로 해결해야함을 알 수 있다나무를 자르는 톱의 가장 이상적인 높이를 구하는 문제이며, 최소인 1부터 나무 높

N은 용액의 개수를 의미한다이후 들어오는 n개의 입력값들은 용액의 특성값을 의미한다두 포인터를 두고, 값을 합하면서 더 0에 가까운 값으로 갱신해나간다면 문제를 해결할 수 있을 것이라 생각하였다양 끝에 두 포인터를 두고, 0에 가까운 값을 판별하기 위해 합을 절댓값으로

입력값 a는 탐색의 시작값이며, k는 탐색의 목표값이다.두 연산에 대한 모든 경우를 구해야하므로 BFS/DFS가 후보가 될 것이다하지만 DFS를 선택할 수는 없다. K의 최대가 100만이기 때문이다. 메모리 초과가 발생할 것이므로 BFS 탐색을 선택하여 해결하는 것을

n은 막걸리 주전자의 개수이며, k는 막걸리를 마실 사람의 수이다이어서 들어오는 n번의 입력값은 각 주전자의 막걸리 용량이다처음에는 문제를 읽고나서는 그리디를 떠올렸다. 가장 크거나 가장 작은 용량, 혹은 그 이외의 방법으로 그리디하게 분배할 수 있는 용량을구하면 문제

width는 블록의 가로 길이, height는 블록의 세로길이이다n은 상점의 개수를 의미한다이후 들어오는 값들은 첫번째는 방향이며 두번째는 그 방향에서의 위치다방향은 1은 y가 0일때, 2는 y가 height일때, 3은 x가 0일때, 4는 x가 height일때다마지막에

N은 가로 길이로 탐색할 수 있는 최대 범위다이어서 들어오는 값들은 각 인덱스의 원소값이다점프를 뛰었을 때, 그 지점의 수를 최대로 하여 앞으로 이동할 수 있다면, BFS 혹은 DP를 떠올릴 수 있는 문제이다이때, 오른쪽 끝 칸을 가기 위해서 최소 몇번 점프를 해야하는

n은 이후 들어올 문자열들의 개수이다이후 들어오는 문자열들은 문자의 집합으로 각 문자들은 공백으로 구분할 수 있다입력값도 작고 그냥 주어진 조건에 따라 문제를 해결하는 문자열 + 구현 문제다문자열을 각각의 테스트 케이스로 보고 공백을 기준으로 각 단어를 뽑아서 확인해준

A는 진행하는 사람의 수이다. 8명이며, 사람은 0번째부터 시작한다T는 구하고자 하는 번째이다. 이때 번과 데기를 구분하여 번의 T번째나 데기의 T번째를 구해야한다이어서 번인지 데기인지를 구분하는 입력값이 들어온다0이면 번, 1이면 데기이다.구하고자 하는 번째인 T가

문제 탐색하기 입력자료 정리 n은 아이스크림의 종류, m은 이후 입력값으로 들어올 섞어먹으면 안되는 조합의 개수이다 이후 들어오는 m만큼의 입력 a와 b는 아이스크림 숫자이다. n은 200, m은 1만이며, a,b는 n의 수제한과 공유하기 때문에 모두 int형 범위의 입력이다. 해결방법 추론 n의 최대 개수가 200이며, m은 한번 입력 들어오고 나서 탐...

입력값 n은 회원의 수, m은 치킨의 종류이다.이후 들어오는 n번당 m번의 입력은 각 회원의 치킨 종류별 선호도이다.너무 많이 선택하는 것을 막기 위해 선택하는 종류는 3가지로 제한하였다또한 합산도 아니며, 선택된 치킨 종류 중 각 회원이 가장 선호하는 치킨을 선택한다

입력자료는 이후 들어올 입력의 개수를 나타내는 n이 있으며, 빈칸으로 구분되는 3개의 입력값이 들어온다각각 왼쪽부터 예측 숫자, 스트라이크 수, 볼 수이다.세자리 숫자 야구 문제의 가짓수는 123~987까지의 범위 안에 있으며 또한 이중에서 한자리라도 0이되거나 다른

입력자료 n은 배열의 행/열 크기를 말한다이어서 들어오는 값들은 각 인덱스의 지점당 가격을 의미한다n이 굉장히 작고, 3가지 지점만 정하는 문제이기 때문에 완전탐색 유형으로 문제를 해결할 수 있다브루트포스와 백트래킹 중 한가지를 선택할 수 있는데, 이 문제는 현재지점

문제 탐색하기 입력 자료 정리 입력값은 19 x 19크기의 오목으로 들어온다 각 입력 인덱스는 0,1,2 중 하나로 들어오며 0은 빈칸이고, 1과 2는 각각 다른색의 바둑돌을 의미한다 이 문제에서는 바둑돌의 색깔이 무엇인지 정확하게 기억할 필요가 없으므로, 단순히 숫자로만 기억한다 해결방법 추론 19 x 19 바둑판을 모두 탐색하면서, 가로/세로/대각선 ...

문제 탐색하기 입력 자료 정리 입력값은 두줄의 문자열이다 첫번째는 바꾸기전 초기 문자열이고, 두번째는 바꾼 후 문자열이다 해결방법 추론 이 문제를 해결하기 위해서는 아이디어가 필요하다 정방향은 바꾸기전 -> 바꾼 후 문자열로 늘려나가는 방법이고, 역방향은 바꾼 후 -> 바꾸기전 문자열로 줄여나가는 방법이다 처음에는 정방향을 선택하여 문제를 해결하였다. 하...

n과 m은 행과 열의 길이이다이후 들어오는 입력값은 각 인덱스의 원소이다.n과 m의 최댓값이 9이다. 또한 각 인데스의 값도 한자리수이다따라서 int형 범위 내에서 모든 수를 표현할 수 있으며, 완전탐색으로 쉽게 모든 경우의 수를 찾은 다음 완전제곱수를 구할 수 있을

문제 탐색하기 입력 자료 정리 n은 입력으로 들어오는 자료들의 개수이며, 이후 들어오는 값들은 각 인덱스의 원소다 해결방법 추론 n이 작기 때문에, 브루트포스로 탐색하면 얻을 수 있을 것 같다는 느낌을 받았다. 3중포문을 통해 비교해야할까? 혹은 다른 방법이 있을까 고민을 많이하는 문제였다 일단 예외처리에 대한 조건을 하나 찾게 되었다. n이 3보다 작으...

n은 배열의 행열 크기를 의미한다이후 들어오는 값들은 배열의 각 인덱스에 해당하는 원소이다n의 최대값이 20으로 작기 때문에, 팀을 뽑는 경우를 조합하거나 모든 경우에 대해 뽑는 부분집합 방식을 사용하면 문제를 해결할 수 있을 것이다처음은 부분집합으로 풀었고, 학습을

문제 탐색하기 입력 자료 정리 처음 주어지는 값은 n으로 숫자의 최대 수를 의미하며, 존재하는 카드 번호의 개수도 의미한다 이후 들어오는 값은 카드섞기 이후 완성된 카드의 순서이다 해결 방법 추론 두번 카드섞은 다음에 그 결과를 입력으로 주어진 결과와 비교하여 적합한 두가지 k를 구하는 문제다 이때 k의 최대치는 9, n은 1000이므로 브루트포스로 모든...

문제 탐색하기 입력 자료 정리 N은 배열의 행열 크기이며, M은 뽑을 치킨집 개수이다 이후 들어오는 값은 각 배열 인덱스의 원소값이며, 0은 빈칸, 1은 도시, 2는 치킨집이다. 해결방법 추론 N과 M이 각각 50과 13이다. 치킨집을 중복없이 뽑는다고 했을 때, 백트래킹으로 시간초과없이 충분히 가능한 문제다 따라서 백트래킹으로 해당 문제를 해결하면 된다...

문제 탐색하기 입력 자료 정리 입력자료 n과 k는 각각 카드의 개수와 뽑는 카드의 수이다 이어서 들어오는 n개의 입력값은 각 카드의 숫자이다. 해결방법 추론 뽑는 카드의 개수가 고정되어있다면 완전탐색으로 쉽게 해결할 수 있었을 것이다 하지만 뽑는 개수가 k의 값에 따

문제 탐색하기 입력 자료 정리 n은 건물의 개수, m은 도로의 개수다 이후 들어오는 값들은 서로 이어지는 건물을 의미한다 해결방법 추론 정점과 간선이 떠오르는 문제다. 그래프 유형으로 해결하면 될 것이다 이어서 2개만 고르면 되고, n도 100으로 최대 입력값이 작다. 따라서 브루트포스로 2가지 경우를 모두 고르며 다음 작업을 진행하면 될 것이다 마지막으...

백준 알고리즘 - 22944번 죽음의 비 해결방법 정리글

백준 11663번 - 선분 위의 점 해결방법 정리글

백준 3079번 - 입국심사 해결방법 정리글

백준 2470번 - 두 용액 해결방법 정리글

백준 2412번 - 암벽 등반 해결방법 정리글

백준 1477번 - 휴게소 세우기 해결방법 정리글

백준 2110번 - 공유기 설치 해결방법 정리글

백준 13397번 - 구간 나누기 2 해결방법 정리글

백준 2473번 - 세 용액 해결방법 정리글

백준 17836번 - 공주님을 구해라! 해결방법 정리글

백준 13023번 - ABCDE 해결방법 정리글

백준 2668번 - 숫자고르기 해결방법 정리

백준 10422번 - 괄호 해결방법 정리

백준 2342번 - Dance Dance Revolution 해결방법 정리

백준 1562번 계단 수 해결방법 정리

백준 8895번 - 막대배치 해결방법 정리

백준 1477번 - 휴게소 세우기 (재풀이) 해결방법 정리글

백준 1300번 - K번째 수 해결방법 정리

백준 2473번 - 세 용액 해결방법 정리

백준 12015번 - 가장 긴 증가하는 부분 수열 2 해결방법 정리

백준 1561번 - 놀이공원 해결방법 정리

백준 14499번 - 주사위 굴리기 해결방법 정리

백준 14890번 - 경사로 해결방법 정리

백준 17837번 - 새로운 게임 2 해결방법 정리

백준 23289번 - 온풍기 안녕! 해결방법 정리

백준 9019번 - DSLR 해결방법 정리

백준 2638번 - 치즈 해결방법 정리

백준 19238번 - 스타트 택시 해결방법 정리

백준 9328번 - 열쇠 해결방법 정리

백준 15685번 - 드래곤 커브

백준 2515번 - 전시장 해결방법 정리

백준 1938번 - 통나무 옮기기 해결방법 정리

백준 12014번 - 주식 해결방법 정리

백준 2417, 7490, 16027, 20444, 5427번 해결방법 정리글

백준 2842번 - 집배원 한상덕 해결방법 정리

백준 16935, 2239, 3584, 12348번 해결 방법 정리글

백준 17208, 21923, 21941, 2228, 14621번 해결방법 정리글

백준 2602, 22865, 2250번 해결방법 정리글입니다