📌 문제 https://www.acmicpc.net/problem/11967 📌 풀이 - 정말 어려웠다..ㅠ - buttonHasRooms[i][j]에 (i,j)위치에 있을 때 불을 켤 수 있는 좌표들을 모두 추가해서 설정해 놓는다. - 방문표시를
📌 문제 https://www.acmicpc.net/problem/2458 📌 풀이 - 1번 정점에서 BFS(setComparabletallArr 함수) 를 시작하여 1번보다 큰 정점을 체크한다. - 위의 방법으로 comparableTallArr라
📌 문제 https://www.acmicpc.net/problem/17352 📌 풀이 - graphOfIslands에 주어진 두 섬들을 모두 이어주어서 그래프를 만들어준다. - 선린월드에서 섬들은 N - 1개의 다리가 잇고있기 때문에 섬 번호 1에서
📌 문제 https://www.acmicpc.net/problem/2660 📌 풀이 - graphOfFriendship에서 친구 관계를 모두 이어서 표현해준다. - BFS로 1번부터 마지막 회원의 수(numOfMember)까지 연결되어 있는 거리를
📌 문제 https://www.acmicpc.net/problem/17265 📌 풀이 - 최단거리로 이동하기 위해 오른쪽, 아래쪽으로만 이동해야하기 때문에 dx, dy를 설정하고 이동하면서 숫자인지 문자인지 판별한다. - 숫자가 나오면 calcByO
📌 문제 https://www.acmicpc.net/problem/10026 📌 풀이 - 적록색약 BOARD를 따로 만들어서 R또는 G인 것을 모두 R로 바꿔주었다. - board 전체를 돌면서 방문하지 않은 좌표들을 방문해서 하나의 section마
📌 문제 https://www.acmicpc.net/problem/15917 📌 풀이 - 힌트를 보고 구현하면 된다. - 시간 초과가 났는데 console.log()에서 났기 때문에 result 에 push해주고 한번에 출력해주면 된다.
📌 문제 https://www.acmicpc.net/problem/16953 📌 풀이 - BFS로 풀면 쉽다. - 시작한는 숫자 A부터 타겟 숫자 B까지 규칙 2개에 따라 적용시키면서 queue에 추가하면 된다.
📌 문제 https://www.acmicpc.net/problem/17204 📌 풀이 - 더게임오브데스라는 게임에서 영기(0)부터 보성(K)까지 이어져 있는 길이를 구하면 된다. - 이어져있지 않으면 -1을 출력한다.
📌 문제 https://www.acmicpc.net/problem/3407 📌 풀이 - 원소의 단어가 1개로 이루어져 있을 경우와 2개로 이루어져 있을 경우를 나누어서 queue에 추가하였다. - visitedElementsInWord 라는 단어 안
📌 문제 https://www.acmicpc.net/problem/6146 📌 풀이 - 웅덩이 좌표가 -500 <= 웅덩이좌표 <= 500 으로 주어졌기 때문에 500을 더한 좌표를 웅덩이로 설정한다. - 전체 좌표를 1001개의 배열로 설정해서 B
📌 문제 https://www.acmicpc.net/problem/2210 📌 풀이 - 대부분 DFS로 풀지만 BFS로 풀어보았다. - 숫자를 하나하나 연결하면서 queue에 넣고 길이가 6이 되었을 때 Set에 넣는 방법으로 풀었습니다. ###
📌 문제 https://www.acmicpc.net/problem/14562 📌 풀이 - BFS로 간단히 풀이한다 - 내가 포인트를 2배씩 얻으면 상대방이 3점씩 얻는 것을 queue에 넣는다. - 두번째는 내가 포인트를 1점씩 얻고 상대방은 그대로
📌 문제 https://www.acmicpc.net/problem/1058 📌 풀이 - 친구의 친구까지 깊이가 2인 친구면 break를 해주고 친구면 true 친구의 count를 늘려준다. - 사람의 수만큼 반복하면서 maxCntOfFriends를
📌 문제 https://www.acmicpc.net/problem/3182 📌 풀이 - 선배가 가장 많이 연결되어 있는 시작점을 찾으면 된다. - BFS로 모든 선배의 번호를 돌아서 cnt를 return 한다. - 하나하나 결과에 추가하여 가장 큰
📌 문제링크 https://www.acmicpc.net/problem/4963 📌 풀이 - 섬을 대각선까지도 하나의 섬으로 보기 때문에 dx, dy를 8방향으로 설정해준다. - 섬이 아닌 0인 부분만 카운트한다. 📌 코드
📌 문제링크 https://www.acmicpc.net/problem/7562 📌 풀이 - 나이트가 갈 수 있는 좌표를 dx, dy로 설정해 놓는다. - 시작하는 좌표에서 도착하는 좌표까지의 값을 cntOfDistance에 누적해서 계산한다.
📌 문제링크 https://www.acmicpc.net/problem/3040 📌 풀이 - 9C2로 9명중 2명의 난쟁이들의 합이 9명의 합에서 100을 뺀 값과 같을 때를 찾으면 된다. - python에는 combinations이 있기 때문에 i
📌 문제링크 https://www.acmicpc.net/problem/2206 📌 풀이 - 단순히 좌표만을 큐에 넣어 탐색하는 방식을 넘어, "현재 상태" 자체를 큐에 넣어서 문제를 풀어야 합니다. 즉, 어떤 좌표에 있는가 뿐만 아니라, "여기까지
📌 문제링크 https://www.acmicpc.net/problem/1697 📌 풀이 - 수빈이가 있는 위치에서 탐색을 시작해서 동생이 있는 위치(K)에 도달하였을 때 while문을 중단한다. - 그때의 시간을 구하면 된다. 📌 코드
📌 문제링크 https://www.acmicpc.net/problem/5567 📌 풀이 - 1이 상근이기 때문에 1부터 거리가 1이나 2인 거리만 뽑아서 길이를 구한다. - BFS 탐색 후 filter 메서드 사용 📌 코드
📌 문제링크 https://www.acmicpc.net/problem/12862 📌 풀이 - `dx = [1, -1, 0, 0]`으로 방향을 정했던 것처럼 `nextCalcNums = [curNum * 3, curNum * 2, curNum + 1]
📌 문제링크 https://www.acmicpc.net/problem/11403 📌 풀이 - 플로이드–와샬 알고리즘을 이용한다. - 지나는 점(k)를 기준으로 i에서 k를 갈 수 있고 k에서 i를 갈 수 있으면 지나는 점이 된다
📌 문제링크 https://www.acmicpc.net/problem/5014 📌 풀이 - 현재 층(floor)에 U, D를 더하고 빼면서 다음 층의 이동숫자를 설정하고 btnClicks에 1씩 더하면서 계산한다. - floor가 TARGET_FLO
📌 문제링크 https://www.acmicpc.net/problem/14248 📌 풀이 - Ai는 왼쪽으로, 오른쪽으로도 갈 수 있기 때문에 양쪽 방향으로 갈 수 있다. - jumpDistance를 기존 정점(stone)에 더하거나 빼서 nextS
📌 문제링크 https://www.acmicpc.net/problem/2644 📌 풀이 - 촌수를 구해야하는 targetA에서 시작해서 targetB까지의 길이(distance)를 구한다 - BFS를 돌면서 방문체크를 하고 degree값을 1씩 증가
📌 문제링크 https://www.acmicpc.net/problem/14397 📌 풀이 - y방향이 짝수, 홀수냐에 따라 달라지기 때문에 나눠서 계산 - 해변일 때에만 개수를 추가하여 길이를 구함 📌 코드
📌 문제링크 https://www.acmicpc.net/problem/1012 📌 풀이 - 배추를 순회하면서 cntOfWorms의 개수를 센다 📌 코드 const fs = require('fs'); const stdin = (
📌 문제링크 https://www.acmicpc.net/problem/14502 📌 풀이 - 모든 BLANK에서 벽 3개를 세우고(DFS 사용) 바이러스를 퍼트려서(BFS 사용) 가장 많은 BLANK의 수를 찾는다. 📌 코드
📌 문제링크 https://www.acmicpc.net/problem/14716 📌 풀이 현수막 내부의 모든 글자의 개수를 찾는 문제 BFS로 글자인 부분(1)만 탐색하면서 서로 연결되어 있을 때만 cntOfWord를 추가 📌 코드
📌 문제 https://www.acmicpc.net/problem/16432 📌 풀이 - 문제를 이해하는데에 많은 시간이 걸렸지만 이해하고 나면 많이 어렵지 않은 문제이다. - N일동안 daysToSellRiceCakes에 가지고가는 떡의 종류를 추
📌 문제 https://www.acmicpc.net/problem/17070 📌 풀이 - 파이프의 끝 부분을 좌표로 계산해 나가면 어렵지 않은 문제이다. - dx, dy로 끝 부분을 정해놓고 계산하면서 예외 조건들(벽이거나 가로에서 세로, 세로에서
원형 큐를 생각해서 문제를 풀었다.우선 personsCds에 1부터 N까지의 사람들의 숫자를 배열로 만들었다. 예전에는 for문으로 하나하나 만들었던 반면 Array.from을 사용하여 편하게 작
후위 표기실을 돌면서 A부터 Z사이에 있으면(즉 영대문자이면) stack에 추가하고 아니면 stack에 있던 값들을 pop하면서 계산해준다.마침 딱 오늘 자료구조를 배웠는데 바로 써먹을줄이야..문
괄호 모양을 보자마자 이건 스택이다 라는 생각과 함께 문제를 접하였다. 로직은 별거 없다.1\. 우선 괄호가 '('가 나오면 스택에 추가한다.2\. 그리고 닫는 괄호 ')' 가 나오면 두가지 경
문제는 덱 문제이다. 아래만 기억해 두면 쉽게 풀 수 있다.첫 번째 원소를 뽑아낸다.(arr.shift())왼쪽으로 한 칸 이동시킨다.(arr.push(arr.shift()))오른쪽으로 한 칸
이 문제는 해시를 사용한 집합과 맵 문제이다. 사실 맵을 사용하지 않는다면 배열로 쉽게 풀 수 있을 것이다. 하지만 맵에 익숙해지기 위해서 맵으로 풀어보았다.참가한 마라토너들을
이 문제는 그리디 문제이다. 로프가 1개일 때부터 N개일 때 까지의 최대 중량을 계산하면 된다.
이 문제는 그리디 문제이다. 에너지 드링크들을 합치는 과정은 다음과 같다.1\. 임의의 서로 다른 두 에너지 드링크를 고르고2\. 한쪽 에너지 드링크를 다른 쪽에 붓는다.(작은쪽에서 양이 적은
이 문제는 그리디 문제이다. \+와 -로 구성된 식에서 괄호를 만들어 최소값을 만드는 문제이다.최소값으로 만드려면 +로 이어진 숫자들을 더한 다음 -로 빼면 된다.예를 들어 55-50+40 이라면