1874번: 스택 수열입력: BufferedReader출력: StringBuilder기본적으로, 현재 비교하고 있는 배열 값(arr\[i])과 현재 stack에 맨 위에 값을 비교.If(arr\[i] > stack.peek())이라면,아직 스택에 해당 값(arr\[i]
1918번: 후위 표기식피연산자: 바로 출력연산자: 스택 활용연산자를 만나면 우선 스택에 넣어주는 것을 기본으로 한다.이때, stack.peek()이 자신보다 높거나 같은 우선순위의 연산자라면 이를 모두 pop(출력)한 후 자신을 push한다.이는 자신보다 높은 우선순
1158번: 요세푸스 문제원형모양으로 앉아 있다는 것때문에 처음에는 LinkedList를 생각했으나, 이번문제는 Queue로 간단하게 해결할 수 있는 문제!우선 큐에 1~n까지의 값을 넣어준다.그 후, 큐가 빌 때까지(사람이 남지 않을 때 까지) while문을 돌리며
첫째 줄에 N(2 ≤ N ≤ 50)과 M(1 ≤ M ≤ 13)이 주어진다.둘째 줄부터 N개의 줄에는 도시의 정보가 주어진다.도시의 정보는 0, 1, 2로 이루어져 있고, 0은 빈 칸, 1은 집, 2는 치킨집을 의미한다. 집의 개수는 2N개를 넘지 않으며, 적어도 1개는
17135번: 캐슬 디펜스아처 3명의 위치를 0~m-1사이에서 정해야 함 -> 조합-기저조건: cnt==3(아처 3명의 위치가 정해졌을때)enemy의 경우, 변경되면 안되는 정보이므로 tmp_enemy를 local 변수로 만들어 기존 데이터 보호tmp_enemy가 비어
첫째 줄에 이닝 수 N(2 ≤ N ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에는 각 선수가 각 이닝에서 얻는 결과가 1번 이닝부터 N번 이닝까지 순서대로 주어진다. 이닝에서 얻는 결과는 9개의 정수가 공백으로 구분되어져 있다. 각 결과가 의미하는 정수는 다음과 같다
\[https://www.acmicpc.net/problem/2839 2839번: 설탕 배달상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져
2961번: 도영이가 만든 맛있는 음식재료를 조합하여 쓴맛과 신맛의 차이를 가장 적게 만들어야 한다.따라서 '조합' 알고리즘을 사용하여 문제를 해결한다.조합 후, 기저조건이 만족하면 해당 조합의 신맛과 쓴맛을 구하고 조합 중 가장 최솟값을 찾는다.
JUNGOL 1828 한 냉장고의 화학물질을 최대로 담아야 하므로 '그리디' 알고리즘 적용화학물질의 최저 보관온도와 최고 보관 온도를 저장할 Material 클래스 선언Material클래스에 Comparable를 implement하여 max값에 따라 오름차순으로 정렬될
1992번: 쿼드트리압축이 되지 않으면 4구역으로 나누어서 연산을 진행해야 하는 분할정복 알고리즘 문제함수 내에서 구역을 나눌 필요 없이 압축이 되는지부터 확인(canZip)압축이 가능하다면 (=범위내에 모든 수가 같다면) 해당 수를 StringBuilder변수에 저장
SWEA(SW Expert Academy) 4012번- \[모의 SW 역량테스트]요리사백준 14889번-스타트와 링크14889번: 스타트와 링크A, B요리 각각 재료를 반씩 나눠가지기 때문에 A요리 재료를 선택한 후 남은 재료를 B요리에 사용 -> 조합A요리에 선택된
3109번: 빵집알고리즘: 백트래킹, DFS0행에서는 아무곳에서나 출발 할 수 있으므로 R길이만큼 돌며 깊이우선탐색 알고리즘을 실행한다.탐색의 기저조건은 현재 Column이 마지막 Column일때.그 외에는 삼방탐색을 하여 갈 곳을 정한다.이 때, 지나온 곳은 'O'로
SWEA(SW Expert Academy) 1223번 계산기2 \[D4]스택을 이용하여 후위표기식을 작성/계산하는 문제후위표기식 변환만약 숫자일 경우, 바로 출력(여기에는 후위표기식 문자열carr에 저장)하고 연산자일 경우, 우선순위에 따라 스택에 pop/push.스택
SWEA(SW Expert Academy) 3234번 준환이의 양팔저울 \[D4]양팔저울에 올리는 순서 정하기 => 순열어느쪽에 올릴지 정하기 => 부분집합무게를 입력받아 우선 올려놓을 순서를 정함.sorted배열에 실행완료 된 순열을 저장하며, 순열이 완성되었을 경우
11000번: 강의실 배정우선순위 큐(PriorityQueue) 활용우선순위 큐란? 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조문제에서는 강의가 가장 일찍 끝나는 강의실이 우선순위로 배정되어야
10026번: 적록색약같은 색이 상하좌우 한곳이라도 인접해있으면 같은 area로 되므로,깊이우선탐색을 통해 같은 구역을 확인한다.문제에서 '같은 색상이 상하좌우로 인접해 있는 경우'라고 되어 있어서 상하좌우에 모두 인접해있어야 한다고 생각했었다...┗|`O′|┛일반인이
2667번: 단지번호붙이기사방탐색 중 깊이우선탐색(DFS)를 사용하여 해결기본 DFS코드에 단지 내 집의 수를 저장 할 cnt배열을 추가하였다.따로 배열을 만들어 준 이유는 마지막에 sort를 해야하기 때문.더보기
https://www.acmicpc.net/problem/1753시작점에서 모든 정점까지의 최단경로를 구하는 다익스트라(Dijkstra) 알고리즘다익스트라 알고리즘 구현\- 시작점에서부터 방문여부와 시작점부터의 최소 경로 정점을 탐색\- 최소 경로 정점 탐색
그래프 탐색(DFS)를 통해 인접 정점의 개수를 구하는 문제.인접행렬을 boolean형으로 선언해탐색하는 인덱스의 값이 true이고 visited배열이 false라면 탐색하며, 결과값 cnt 증가.
단순히 win-lose 개수와 무승부 개수만 맞추면 된다고 생각했다면 바로 실패1. 가능한 매치들을 모두 살펴 보아야 함: A - B,C,D,E,F / B-C,D,E,F / C-D,E,F / D-E,F / E-F 2\. 매치를 돌며 승-패 / 무-무 / 패-승 의 경우
5427번: 불전형적인 BFS 시뮬레이션 문제!모든 로직의 순서와 불이 번지는 과정만 꼼꼼히 작성해주면 된다.BFS 로직 순서1\. Depth가 늘어날 때 마다 불 확산2\. 가려는 길에 불이 있으면 Continue3\. 종료 조건 확인4\. 상근이 이동 가능 경로 탐
16118번: 달빛 여우모든 정점에 대한 최단 경로를 탐색하는 다익스트라 알고리즘 문제가장 중요한 고려사항은 늑대의 경우 홀수/짝수번째로 건넜을 경우를 각각 저장해 줄 수 있어야 함!속도가 /2가 될 수 있으므로 소수점 방지를 위해 처음 입력 받을 시 weight에 \
1032번: 명령 프롬프트문자열을 캐릭터 배열로 변환하여 하나씩 비교하는 문제
3184번: 양1\. 양 또는 늑대가 있는 영역을 검사 (BFS)2\. 그래프를 돌며 양과 늑대의 위치 저장3\. 탐색 후, 양과 늑대 리스트 크기 비교 후 map에 반영
18222번: 투에-모스 문자열\[1과 0을 1과 -1이라고 생각하자! ( 부호의 차이로 생각하자! )2의 제곱 수(2,4,8,16,...)만큼 앞뒤로 대칭되고 있는 문자열! 즉, N보다 작은 2의 제곱수를 뺀 인덱스 값(N - (2\*?)) 을 알면 N의 값을 알게
11780번: 플로이드 2모든 경로에 대한 최소 비용을 구해야 하므로 '플로이드-워샬 알고리즘' 사용!최소 비용 외, 경로에 대한 내용도 저장해야 하므로 이차원배열 변수 하나 더 선언map\[i]\[j]: i -> j 경로의 최소 비용 저장path\[i]\[j]: i에
4933번: 뉴턴의 사과입력 받은 값을 어떻게 트리로 만드느냐를 생각하는 것이 관건.입력은 포스트오더(후위순회)로 주어진다고 하니 stack을 활용하여 트리 구성후위순회로 주어진 그래프의 stack 변환 로직1\. 현재 넣으려는 노드(i)가 null이 아니고, 이미 스
9996번: 한국이 그리울 땐 서버에 접속하지문제가 어렵지는 않지만 이해를 잘 해야하는 문제! substring으로 나눌때에 반례가 많으니 이를 잘 체크해주어야 한다.
11660번: 구간 합 구하기 5줄 단위로 더해줌\[ ]\[ ]\[ ]\[ ]\[ ]\[ ]\[ ]\[o]\[o]\[ ] -> o 부분 합: sum(2,5) - sum(2,2)\[ ]\[ ]\[o]\[o]\[ ] -> o 부분 합: sum(3,5) - sum(3,2)o
2233번: 사과나무~트리는 어렵다!!!!!!!!!!!!!!!!!~1\. parent 배열과 root 배열 채우기Stack을 이용하여 트리 만들기이진 배열을 비교하며 삭제하고자 하는 노드의 '실제 인덱스' 구하기2\. 가장 가까운 공통 조상 구하기parent배열을 사용
\[https://www.acmicpc.net/problem/14466 \[14466번: 소가 길을 건너간 이유 6첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의
16639번: 괄호 추가하기 3숫자와 연산자를 한번에 저장할 수 있는 Expression 클래스 생성\-> 숫자를 char로 한번에 저장했더니, 9 이상의 숫자는 제대로 작동하지 않음 ㅠㅠ연산 리스트에서 숫자가 나오는 짝수 인덱스를 돌며 연산 수행 후, 남은 연산 리스
16918번: 봄버맨시뮬레이션은 차례대로만 구현하자!설치 후, 1초 후엔 아무런 변화 없으므로 초기 상태 설정 시 1초 후의 상태로 바로 설정2초 후부터 N초 후까지의 로직을 구현for(int i = 1 ; i < N ; i++) == for(int i = 2 ;
2174번: 로봇 시뮬레이션좌표계만 신경쓰면 어렵지 않았던 문제!나의 경우, 좌상단부터 (0,0) 우하단이(B-1,A-1)가 되도록 좌표를 설정하였다.여기서 주의해야 할 점은! 입력 또한 x축 좌표부터 입력되므로 바로 \[x]\[y]이렇게 저장하면 오류가 난다.모든 코
1238번: 파티마을들인 N에서 목적지 X까지 걸리는 최단거리 -> A목적지 X에서 각 마을 N까지 걸리는 최단거리 -> B를 이용해서 왕복 거리의 최단 거리를 구한다!B는 출발지로부터 모든 노드까지의 거리를 구하는 다익스트라 알고리즘을 이용A의 경우, 모든 노드사이의
13549번: 숨바꼭질 3처음에 단순히 BFS ( 1차원 배열 탐색 ) 으로 풀었더니 당연히! 시간초과가 났다.그래서 방문하는 인덱스마다의 최단거리를 구하는 다익스트라 알고리즘 사용!더보기오래도 걸렸다,,,, 7트만에 성공!!!!!!!!
11967번: 불켜기탐색을 언제, 어디에서 하는지가 굉장히 중요한 문제!우선, 더 이상 상태 변경이 없을 때까지 탐색을 반복한다.cangoTmp: 탐색하기 전의 상태를 저장해 놓는다.탐색한 곳에서 스위치를 켤 수 있는 곳의 cango값을 true로 변경한다.BFS 탐색
14658번: 하늘에서 별똥별이 빗발친다N과 M의 범위가 500,000까지이므로, 이를 모두 완전탐색하면 시간초과가 난다.하지만, K의 개수는 100개 이하이기 때문에 K를 이용해서 탐색을 진행하면 된다.위의 사진은 문제 예시를 좌표에 나타낸 것이다.별들을 이중 for
1253번: 좋다배열의 값들을 하나씩 돌며, 투 포인터를 사용하여 해당 수가 좋은지 판별하였다.문제에 나와있는 예시가 너무 자명하기 때문에 아래 예시로 생각하고 문제를 풀었다.기본적으로 정렬을 진행해야 한다. 그렇지 않으면, 투포인터의 움직임에 따른 로직을 작성할 수
2531번: 회전 초밥길이가 k인 슬라이딩 윈도우로 구현하였다.이 때, 매번 i번째에 대해서 k개를 탐색하는 것이 아니라 ( → 시간초과! )초기의 window를 셋팅하고 start와 end 인덱스에 대해서만 처리하였다.eat\[start] 값을 -1하고, 그 값이 0
20055번: 컨베이어 벨트 위의 로봇문제가 참,, 여러모로 이해하기 어려웠다,,다른것보다 갑자기 출력하라고 나온 단어인 '단계'가 무엇인지 예제를 몇개 돌려보고야 알았던 것 같다.여기선 1-4의 루틴을 한 단계라고 하고, 종료되기까지 총 몇번의 단계를 거쳤는지를 구하
SWEA(SW Expert Academy) 6808번- 규영이와 인영이의 카드게임 (D3)정해진 값들 중, 어떻게 배열하는지에 따라 나뉘는 순열 문제isSelected의 boolean배열을 활용하여 현재 인영이가 낼 수 있는 값들의 순열을 구함기저조건을 만족하면(순열의
문제보기3, 4 조건이 다르게 보일 수 있지만, 3번 역시 가장 짧은 문자열이려면 첫번째와 마지막 문자가 해당 문자여야 한다!💡 따라서, 3,4번이 동일한 조건이고 그 조건의 가장 짧은, 긴 길이만 구해주면 된다.알파벳들이 나온 인덱스를 모두 저장할 수 있도록 리스
문제보기이분 탐색 + 다익스트라!정답이 될 수 있는 값을 이분 탐색으로 정한 후, 검증위해 다익스트라를 활용left는 정답이 될 수 있는 최솟값 0, right는 정답이 될 수 있는 최댓값으로 설정(입력 시, 미리 받아놓음)중간값으로 다익스트라connectOK()를 돌