📚문제링크여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라
스택 수열스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in Firs
📚문제링크요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의
📚문제링크괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만
📚문제링크0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.예를 들어, 주어진 정수가 6, 10, 2라면 6102, 6210, 1062, 1026, 2610, 2106를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
📚문제링크배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.예를 들어 array가 1, 5, 2, 6, 3, 7, 4, i = 2, j = 5, k = 3이라면array의 2번째부터 5번째까지 자르면 5, 2,
📚문제링크 문제 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된
문제링크📚널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오.배열에 자연수 x를 넣는다.배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.입
문제링크📚최소힙 문제와 마찬가지로 기본적인 힙의 구현문제라고 할 수 있다! 최대힙 구현해서 그대로 넣으면 되는 문제최소힙과 유사한 형태의 문제였기 때문에 빠르게 손가락을 움직였던 문제였다! 그래서 느낀점은 생략
문제링크📚절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.배열에 정수 x (x ≠ 0)를 넣는다.배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한
문제링크📚차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며
문제링크입력값을 받아서 그래프로 만들어줌 (이차원배열)DFS (타켓인덱스에 해당하는 값들 존재하면 탐색필요배열 앞에 넣어주고, shift하면서 방문여부 체크)BFS (타켓인덱스에 해당하는 값들 존재하면 탐색필요배열 뒤에 넣어주고, shift하면서 방문여부 체크)처음엔
문제링크같은 행에 인접한 - 나무 판자는, 하나로 인지하자.같은 열에 인접한 | 나무 판자는, 하나로 인지하자.이게 문제의 핵심인 것 같다. (사실 그냥 문제를 읽기만 해도 저걸 염두에 두어야 하는 것은 당연하지만)그래서 이중 for문을 돌려서 - 판자 뒤에 뭐가 오는
문제링크N의 크기가 10만이기 때문에 bfs 를 선택방문여부 체크용 배열 생성 + queue 도 같이앞 / 뒤 / 순간이동을 반복문으로 돌리면서 이동할 위치가 직선상의 범위에 있는지, 방문하지 않았는지 체크수빈이의 위치 == 동생위치이면 break반복적인 연습은 자신감
문제링크입력값으로 주어진 미로 이중배열화 (map)bfs를 이용할 큐 선언 + 방문여부 체크용 visited 배열 선언미로에서 상하좌우 이동할 수 있으므로, x축기준으로 움직일 수 있는 방향과 y축을 기준으로 움직일 수 있는 방향의 배열 선언bfs에서 상하좌우 움직이면
📚문제링크모여있는 쓰레기의 갯수를 count 하고, 배열에 담아 max 값을 뽑아내면 되는 문제이다.쓰레기가 위치한 좌표를 map배열에 담아둠방문여부를 확인할 수 있도록 visited 배열을 만들고, 쓰레기가 위치한 좌표에 true 표시 (방문한 경우 -> false
📚문제링크건물 높이를 기준으로 max 값을 구해낸다2.⭐️ 0 ~ max 까지 비가 온다고 가정하고 반복문을 돌리며 각 강수량에 따라 안전지대 수를 파악한다. ⭐️(2번)을 토대로 flood 배열의 값을 설정하여 침수된 경우 false, 그렇지 않은 경우는 true로
📚문제링크1번(최상위 노드와)과 연결된 노드들을 찾아서 count 해주면 되는 문제!DFS/BFS 모두 사용해도 되지만 이번엔 BFS를 선택했다.단순 BFS 구현해주면서 visited.length를 구하거나, visited에 값을 추가할때 count++를 해주면 된다
문제링크 접근 방향 설명 > 1. (S\S 안에 ) 모든 값이 다 같은지 확인* > 2. -> 같다면 해당 종이에 +1 > 3. 아니면 9등분 -> 가로 3등분, 세로 3등분 (S/3)한걸로 다시 재귀함수 호출 (이때 좌표로 움직여주기, 기준점 + 3분할했
문제링크입력값을 이중배열로 재구성 (apt 배열)apt 배열을 순회하여 1을 만난 경우, 해당 좌표 row, column을 dfs에 전달2-1. 이때 방문한 좌표의 값은 0으로 설정하여 중복을 피함2-2. 상하좌우의 값이 1인 경우에 재귀에 들어가도록 (이때 x,y값이
문제링크숨바꼭질 1을 풀어봤기 때문에 bfs로서의 해결을 안다는 가정하에!1과의 차이점은 바로 순간이동시, 시간 카운트를 하지 않는다는 것이다.그렇기 때문에, 최대한 순간이동을 많이 사용하여 (높은 우선순위에 두고),bfs를 통해 경로를 탐색하면 된다.순간이동을 우선으
문제링크입력값 이중배열로 만들기 (map 배열)DFS (스택)2-1. 현위치 좌표 & 움직일 칸수 저장2-2. 좌표 + 칸수가 map 안에 들어있는 값만, needvisite에 저장2-3. 이때 현위치의 move가 -1인 경우 HaruHaru 출력 후 종료2-4. 밟은
이게 ..? 실버4?
앞으로 폴리오 어쩌구만 봐도 replace 생각나게 하는 문제..... 일듯 🙂↔️
연속된 숫자만을 한번에 뒤집을 수 있다는게 중요 포인트이다. 그래서 0으로 뒤집을지, 1로 뒤집을지를 생각하면 된다!
첫 번째 레벨부터 마지막 레벨까지 순서대로 주어지기 때문에, 가장 마지막에 오는 레벨(= 최상위 레벨)이 가장 점수가 높아야 한다.이에 따라, 그 앞에 오는 레벨은 뒤 레벨보다 작아야 하기 때문에 반복문을 idx 뒤부터 돌면 되겠다! 따라서, whil
괄호를 어디에 둘지가 중요한 만큼 본 문제에선 - 부호가 좀 중요하다! 그래서 .split('-') 을 통해 먼저 문자열을 나눠주고, 각 배열 내부의 값들을 최대한 크게 만들어줘서 크게 빼주면 해결된다.ex -> 55-50+40 -> '55-50+40'.sp
최소한의 동전 갯수로 K 만큼의 금액을 만들어내면 되는 문제 주어진 배열을 역순으로 반복문을 돌리되, 금액 / 배열의 금액 이 1 이상이면 Math.floor(K / input\[i]) 을 count 에 넣어주고, 구해낸 금액은 K % input\[i] 하면 거
문제링크최대한 많은 자연수를 쓰는게 관건인 문제이기 때문에, while 문을 통해 n을 점점 증가시켜준다. 이떄 탈출 조건은 S >= 0 으로 정해두지만, 실제 탈출 조건은 if (S <= n) 이다. (왜냐하면, S가 n보다 작아지면 동원되는 자연수의 증복이
1) 한줄씩 주어진 알파벳 문자열을 split('') 해서 하나씩 each_value = {}; 안에 key값으로 넣어준다.2) 근데 이제 value는 단위 (10000 ,1000 ... ) 를 넣어주었다. 10 \*\* (Arr\[i].length - 1 -
문제링크퐁당퐁당 문제 (= 퐁으로 끝나냐 당으로 끝나냐를 봐야함 )다음과 같이 순서가 전개되는데, turn이 홀이면 상근, turn이 짝이면 창영이가 이긴다
문제링크1️⃣ 줄의 길이를 start(min) = 1, end(max) = 주어진 줄 배열중 최대 길이로 잡고 이진 탐색을 진행한다.2️⃣ 이때 mid 값으로 N 개의 줄을 만들 수 있는지를 판별한 후, 가능한 경우 ans 배열에 넣는다.3️⃣ 이진탐색을 마친 후, a
이분탐색 start와 end 잘 골라 설정하고, if문 분기의 조건을 잘 고려하기!
토마토마토 정복~~
DP는 규칙을 얼마나 잘 발견해서, 메모리에 어떤식으로 저장하는지가 제일 중요한 것 같다