BOJ 2206: 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206우선 최단 경로를 묻는 문제기 때문에 BFS를 사용하여 해결한다. 하지만 벽을 한 개 까지는 부수고 이동할 수 있다.부순 벽의 수가 0개 이다 -
문제 > BOJ 17406: 배열 돌리기 4 https://www.acmicpc.net/problem/17406 풀이 회전하는 그림 코드 정리
BOJ 2206: 벽 부수고 이동하기 https://www.acmicpc.net/problem/1600최소한의 동작을 구하라고 했기 때문에 BFS를 사용하여 해결한다.BFS를 이용하여 말 점프를 모두 쓴 경우와 아닌 경우를 나눠서 해결한다.도착한 좌표의 값을
BOJ 2206: 1261: 알고스팟 https://www.acmicpc.net/problem/1261우선 최단 경로를 묻는 문제기 때문에 BFS를 사용하여 해결한다. 벽으로 막힌 경우 벽을 부수며 목적지까지 이동한다.BFS로 빈 공간일 때는 desCnt+0을
BOJ 2234: 성곽 https://www.acmicpc.net/problem/2234방의 개수, 가장 넓은 방의 넓이, 벽 하나를 부순 후 새로 얻는 방 크기의 최댓값 을 구해야한다.방의 개수 는 BFS를 사용하여 구한다.가장 넓은 방의 넓이 는 방의 개수
BOJ 15649: N과 M https://www.acmicpc.net/problem/15649단어 그대로 되추적 하는 알고리즘이다.모든 경우의 수를 찾아보지만 그 중에서 가능성이 있는 경우의 수만 찾아보는 방법이다.어떤 노드를 확인하여 가능성이 있다면 자식
BOJ 15650: N과 M (2) https://www.acmicpc.net/problem/156501부터 N까지의 수 중 오름차순이면서 M의 길이까지 나열 가능한 수열 을 구해야 한다.사용할 dfs 함수에 시작할 수인 start 변수와 깊이를 나타낼 dep
BOJ 15651: N과 M (3) https://www.acmicpc.net/problem/156511 ~ N 까지의 수를 조합한다.길이가 M 인 조합이다.중복해서 조합할 수 있다.DFS를 사용하여 1부터 중복이 가능한 조합으로 M개를 뽑는다.중복이 가능하므
BOJ 15651: N과 M (4) https://www.acmicpc.net/problem/156521부터 N까지의 자연수 중에서 M개를 골라 출력한다.같은 수를 여러 번 골라도 된다.(중복 허용)비내림차순 즉, 오름차순으로 출력한다.사전 순으로 증가하는 순
BOJ 15651: N과 M (5) https://www.acmicpc.net/problem/15654N개의 자연수 중에서 M개를 고른 수열을 출력한다.중복되면 안된다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.입력받은 배열인 arr을 오름차순으로 정렬
BOJ 15651: N과 M (6) https://www.acmicpc.net/problem/15655N개의 자연수 중에서 M개를 고른 수열을 출력한다.중복되면 안된다.고른 수열은 오름차순이어야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.입력받은
BOJ 15646: N과 M (7) https://www.acmicpc.net/problem/15656N개의 자연수 중에서 M개를 고른 수열을 출력한다.중복할 수 있다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.입력받은 배열인 arr을 오름차순으로 정렬
BOJ 15657: N과 M (8) https://www.acmicpc.net/problem/15657N개의 자연수 중에서 M개를 고른 수열을 출력한다.고른 수열은 비내림차순(자기 자신을 포함하는 오름차순)이어야 한다.중복할 수 있다.수열은 사전 순으로 증가하
BOJ 15663: N과 M (9) https://www.acmicpc.net/problem/15663이런 방식으로 ArrayList를 두 개 만들어 중복인 값은 list2에 넣어 따로 처리를 해보려고 했다.이렇게 하면 입력값이 모두 같을 때 출력이 여러번 된
BOJ 15664: N과 M (10) https://www.acmicpc.net/problem/15664N개의 자연수 중에서 M개를 고른 수열을 출력한다.고른 수열은 비내림차순(자기 자신을 포함하는 오름차순)이어야 한다.중복할 수 없다.수열은 사전 순으로 증가
BOJ 15665: N과 M (11) https://www.acmicpc.net/problem/15665N개의 자연수 중에서 M개를 고른 수열을 출력한다.중복할 수 있다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.before 변수와 now 변수를 통해
BOJ 15666: N과 M (12) https://www.acmicpc.net/problem/15666N개의 자연수 중에서 M개를 고른 수열을 출력한다.고른 수열은 비내림차순(자기 자신을 포함하는 오름차순)이어야 한다.중복할 수 있다.수열은 사전 순으로 증가
BOJ 16932: 모양 만들기 https://www.acmicpc.net/problem/16932map에 값을 입력받을 때 0좌표를 zeroQ 큐에 넣는다.(이유는 아래 코드의 주석에 있음)map을 돌며 1을 만날 때 마다 bfs를 시작한다.탐색된 1의 덩어
BOJ 1713: 후보 추천하기 https://www.acmicpc.net/problem/1713문제에 적혀 있는 조건 그대로 구현하면 된다.LinkedList 를 사용하여 액자를 구현한다.Stack 을 사용하여 추천수(cnt) 가 같은 후보들의 추천 받은 시
BOJ 8896: 가위 바위 보 https://www.acmicpc.net/problem/8896LinkedList에는 가위바위보에 참가할 수 있는 로봇의 번호를 넣어준다.HashMap에는 LinkedList에 있는 로봇의 번호와 로봇이 낸 결과(가위/바위/보
BOJ 16234: 인구 이동 https://www.acmicpc.net/problem/16234인구 이동이 더 이상 없을 때 까지 while 문을 반복해준다.bfs 로 들어가서 인접한 국가를 탐색하고 문제 조건에 맞으면 새로운 인구를 구하여 해당 국가들에 적
BOJ 14501: 퇴사 https://www.acmicpc.net/problem/14501DFS 를 사용하여 해결한다.탈출 조건: 날짜(idx)가 N 이상이면 result 중 최댓값을 구하며 끝낸다.만약 상담을 끝낸 날이 N 이하라면. 즉, idx + sch
BOJ 6603: 로또 https://www.acmicpc.net/problem/6603문제에서 이미 그룹화를 다 해주어서 제시된 그룹 중 6개만 골라 출력해주면 되는 쉬운 문제다.백트래킹 을 사용하여 제시 된 그룹 중 6개의 수를 고를 때 까지 재귀호출을 해
BOJ 2840: 행운의 바퀴 https://www.acmicpc.net/problem/2840제출한 결과 java.lang.ArrayIndexOutOfBoundsException이 떴다.바퀴에 중복된 문자가 있으면 안된다.바퀴는 시계방향으로 돈다. == 화살
BOJ 14888: 연산자 끼워넣기 https://www.acmicpc.net/problem/14888연산자 입력이 2 1 1 1 이런 식으로 들어오기 때문에 ArrayList를 만들어 덧셈: 0, 뺄셈: 1, 곱셈: 2, 나눗셈: 3 이런 식으로 0 0 1
BOJ 2668: 숫자고르기 https://www.acmicpc.net/problem/2668윗 줄의 수를 출발지로, 아랫 줄을 도착지로 하여 그래프를 그려본다.위 문제에 있는 예시를 이용하면,2 -> 1 <-> 3 // 5<->5 <- 4 &
BOJ 4179: 불! https://www.acmicpc.net/problem/4179입력을 받으며 지훈의 위치와 불의 위치를 Queue에 넣는다.지훈의 위치가 이미 map의 가장자리에 있으면 탈출할 수 있기 때문에 바로 처리해준다.여기서 불의 위치는 바로
BOJ 14889: 스타트와 링크 https://www.acmicpc.net/problem/14889백트래킹을 사용하여 두 팀에 속할 선수의 번호를 나눠준다.여기서 A팀은 true, B팀은 false로 구분해준다.백트래킹의 종료 조건 안에서 두 팀의 점수 차이
BOJ 9663: N-Queen https://www.acmicpc.net/problem/96631차원 배열을 만들어 배열의 index가 행을, map\[index] 값이 열을 의미하도록 한다.예를 들어 1이 퀸이 있는 자리라고 했을 때 (N = 4)1 0 0
BOJ 1182: 부분수열의 합 https://www.acmicpc.net/problem/1182백트래킹을 사용하여 해결한다.백트래킹에 사용할 메소드 bt(int start, int depth, int limit)의 limit 파라미터는 반복문을 사용하여 1부
BOJ 15683: 감시 https://www.acmicpc.net/problem/15683ArrayList에 캠의 종류와 좌표를 넣는다.caseList 에 캠의 종류와 감시 방향에 대한 정보를 넣는다.caseList에 들어가는 배열의 0번째 자리에는 캠의 종
BOJ 16918: 봄버맨 https://www.acmicpc.net/problem/16918입력값 그대로 char 배열이 아닌 int 배열을 사용해 해결한다.폭탄이 없는 자리는 0, 폭탄은 터지는 시간(예를 들어, 3초에 터지면 3)을 배열에 넣는다.시간(t
BOJ 16987: 계란으로 계란치기 https://www.acmicpc.net/problem/16987계란을 깨는데 조건계란에는 내구도(dura)와 무게(weight)가 있다.계란을 계란끼리 치면 계란의 내구도(dura)는 다른 계란의 무게(weight)만큼
BOJ 2174: 로봇 시뮬레이션 https://www.acmicpc.net/problem/2174문제에서 제시하는 좌표값과 방향이 2차원 배열로 생각할 때의 좌푯값과 방향과 다르기 때문에 헷갈리기 쉽다.HashMap에 Key: 로봇의 번호, Value: 로봇
BOJ 1759: 암호 만들기 https://www.acmicpc.net/problem/1759조합한 암호는 최소 1개의 모음과 최소 2개의 자음이 포함되어야 한다.암호의 길이는 L개 이다.암호는 알파벳 순서로 오름차순이어야 한다.문자를 입력받고 오름차순으로
BOJ 15686: 치킨 배달 https://www.acmicpc.net/problem/15686도시의 치킨 거리는 모든 집의 치킨 거리의 합이다.치킨 거리는 가정집과 가장 가까운 치킨집 사이의 거리이다.도시에 있는 치킨집 중에서 최대 M개를 고르고 나머지 치
BOJ 7682: 틱택토 https://www.acmicpc.net/problem/7682X 부터 놓는다.3칸 빙고가 나오면 즉시 게임이 끝난다.게임판이 가득 차면 게임이 끝난다.까다로운 조건들을 걸러주면서 해결한다.가로, 세로, 대각선을 검사해서 빙고가 있는
BOJ 16236: 아기 상어 https://www.acmicpc.net/problem/16236먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다.먹을 수 있는 물고기가 1마리보다 많다면, 거리가 가장 가까운 물고기를 먹으러 간다.거리는 상어가 물고
BOJ 3190: 뱀 https://www.acmicpc.net/problem/3190뱀이 이동한다.머리가 먼저 이동한다.이동한 자리에 사과가 없다면 꼬리를 한 칸 당겨 뱀 길이가 일정해 지도록 한다.이동한 자리에 사과가 있다면 꼬리를 그대로 두어 뱀 길이가
BOJ 1987: 알파벳 https://www.acmicpc.net/problem/1987(0, 0)부터 시작해서 상하좌우로 이동한다.이 때 이미 지나온 칸에 있는 문자는 다시 방문할 수 없다.map 배열에 입력받을 때 map\[i]\[j] = str.char
BOJ 2239: 스도쿠 https://www.acmicpc.net/problem/2239일반 스도쿠의 조건과 같다.1~9까지의 수가 가로, 세로, 9개의 네모 칸 안에서 중복되게 있으면 안된다.답이 여러 개 있다면 그 중 사전식으로 앞서는 것을 출력한다. 즉
BOJ 14502: 연구소 https://www.acmicpc.net/problem/14502벽 3개를 모두 써서 바이러스가 퍼지지 못하는 안전지대의 최대 넓이를 구하는 문제이다.상, 하, 좌, 우 만 벽으로 막으면 바이러스가 퍼지지 못한다.ArrayList에
BOJ 16985: Maaaaaaaaaze https://www.acmicpc.net/problem/16985입력 받은 5개의 판을 적절히 회전시켜 랜덤으로 쌓은 뒤 미로 탈출의 최단 거리를 구해야한다.입구 map\[0]\[0]\[0] 에서 출구 map\[4]
BOJ 11559: Puyo Puyo https://www.acmicpc.net/problem/11559여러 가지 색깔의 뿌요는 아래의 바닥이나 다른 뿌요가 나올 때 까지 아래로 떨어진다.같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌
BOJ 1938: 통나무 옮기기 https://www.acmicpc.net/problem/1938통나무를 움직이는 방법은 상, 하, 좌, 우, 90도 회전이 있다.회전이 가능하기 위해서는 통나무를 둘러싸고 있는 3\*3 정사각형 구역에 나무가 하나도 없어야 한
BOJ 12100: 2048 (Easy) https://www.acmicpc.net/problem/12100한 번의 이동은 보드 위에 있는 전체 블록을 상, 하, 좌, 우 네 방향 중 하나로 이동시키는 것이다.이 때, 같은 값을 갖는 두 블록이 충돌하면 두 블
BOJ 13549: 숨바꼭질 3 https://www.acmicpc.net/problem/13549목적지까지 가는데 방법이 3가지가 있다.현재 위치 X 2 : 이동하는 데 걸리는 시간은 0이다.현재 위치 + 1 : 이동하는 데 걸리는 시간은 1이다.현재 위치
BOJ 16926: 배열 돌리기 1 https://www.acmicpc.net/problem/16926회전시킬 수 있는 그룹 별로 반시계 방향으로 회전시킨다.회전시켜야 하는 그룹의 갯수를 구한다.Math.min(N, M) / 2예를 들어, 2 X 2 행렬에서는
BOJ 16935: 배열 돌리기 3 https://www.acmicpc.net/problem/169353번, 4번 연산은 세로 길이와 가로 길이가 바뀔 수 있다.상하 반전할 땐 세로 길이의 절반을 기준으로 잡고 반전시킨다.좌우 반전할 땐 가로 길이의 절반을 기
BOJ 16927: 배열 돌리기 2 https://www.acmicpc.net/problem/169271 <= R <= 10^9min(N, M) mod 2 = 0가로, 세로 중 더 짧은 값이 짝수라는 뜻이다.1 1 1 1 1 1
BOJ 1952: 달팽이2 https://www.acmicpc.net/problem/1952시계 방향으로 바깥쪽 테두리부터 돌면서 탐색한다.방향을 꺾을 때 마다 횟수를 세서 출력한다.오른쪽, 아랫쪽, 왼쪽, 윗쪽 순서로 탐색한다.이미 탐색한 위치는 방문 처리
BOJ 16931: 겉넓이 구하기 https://www.acmicpc.net/problem/16931입력 받은 N X M 크기의 값들은 각각 그 위치에 있는 정육면체의 높이이다.겉넓이를 모두 구하면 된다.겉넓이 구하는 방법맨 앞의 면은 겉넓이에 그냥 더한다.바
BOJ 16931: 레벨 햄버거 https://www.acmicpc.net/problem/16974레벨-0 버거는 패티만으로 이루어져 있다.레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, 패티, 레벨-(L-1)버거, 햄버거번으로 이루어져 있다. (L ≥ 1)
BOJ 1913: 달팽이 https://www.acmicpc.net/problem/1913(0, 0)의 위치에 N X N 값을 넣고 시작한다.문제에 나와있는 조건대로 수를 1씩 줄여나가며 끝까지 넣어준다.반시계 방향으로 바깥 쪽에서부터 안 쪽으로 차례로 넣는다
BOJ 17281: ⚾ https://www.acmicpc.net/problem/17281총 N이닝 동안 게임을 진행해야 한다.한 이닝에 3아웃이 발생하면 이닝이 종료된다.경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순
BOJ 14226: 이모티콘 https://www.acmicpc.net/problem/14226다음과 같은 3가지 연산만 사용한다.화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다.클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다.화면에 있는 이모티
BOJ 14500: 테트로미노 https://www.acmicpc.net/problem/14500테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합의 최댓값을 구한다.'ㅗ' 모양을 제외한 나머지 4개의 모양은 DFS를 이용하여 구현할
BOJ 17822: 원판 돌리기 https://www.acmicpc.net/problem/17822원판에 수가 남아 있으면, 인접하면서 수가 같은 것을 모두 지운다.인접한 조건i번째 원판에 적힌 j번째 수의 위치는 (i, j)로 표현한다.(i, j)와 인접한
BOJ 5213: 과외맨 https://www.acmicpc.net/problem/5213타일은 두 조각으로 나누어져 있다.타일은 N줄로 놓여져 있고, 홀수 줄에는 N개의 타일이, 짝수 줄에는 N-1개의 타일이 놓여져 있다.한 타일에서 다른 타일로 넘어가려면,
BOJ 14499: 주사위 굴리기 https://www.acmicpc.net/problem/14499주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져 있으며, 놓여져 있는 곳의 좌표는 (x, y) 이다.가장 처음에 주사위에는 모든
BOJ 15662: 톱니바퀴 (2) https://www.acmicpc.net/problem/15662톱니바퀴 A를 회전할 때, 그 옆에 있는 톱니바퀴 B와 서로 맞닿은 톱니의 극이 다르다면, B는 A가 회전한 방향과 반대방향으로 회전하게 된다.이 때, 회전
BOJ 14503: 로봇 청소기 https://www.acmicpc.net/problem/14503현재 위치를 청소한다.현재 위치에서 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다.왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회
문제 > BOJ 15685: 드래곤 커브 https://www.acmicpc.net/problem/15685 풀이 조건 x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. K(K > 1)세대 드래곤 커브는 K-1세대 드래곤 커브를 끝 점을 기준으로
BOJ 20055: 컨베이어 벨트 위의 로봇 https://www.acmicpc.net/problem/20055로봇은 올리는 위치(belt\[0])에만 올릴 수 있다. 언제든지 로봇이 내리는 위치(belt\[N-1])에 도달하면 그 즉시 내린다.로봇은 컨베이어
BOJ 17144: 미세먼지 안녕! https://www.acmicpc.net/problem/17144공기청정기는 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다.공기청정기가 설치되어 있지 않은 칸에는 미세먼지가 있고, (r, c)에 있는 미세먼지의
문제 > BOJ 17140: 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 풀이 조건 풀이 순서 코드 정리
BOJ 3107: IPv6 https://www.acmicpc.net/problem/310732자리의 16진수를 4자리씩 끊어 나타낸다. 이때, 각 그룹은 콜론 (:)으로 구분해서 나타낸다.예시)2001:0db8:85a3:0000:0000:8a2e:0370:7
BOJ 1089: 스타트링크 타워 https://www.acmicpc.net/problem/1089block\[n]\[i]\[j] 에 입력 받은 숫자를 구분하여 입력 형식 그대로 저장한다.예시) 위의 형식으로 입력이 들어왔다면,block\[0]\[ ]\[ ]에
BOJ 20056: 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056파이어볼의 위치는 (r, c), 질량은 m이고, 방향은 d, 속력은 s이다. 위치 (r, c)는 r행 c열을 의미한다.아래 코드에서 r은 x, c는 y
BOJ 20058: 마법사 상어와 파이어스톰 https://www.acmicpc.net/problem/20058크기가 2^N × 2^N인 격자로 나누어진 얼음판에서 수행한다.위치 (r, c)는 격자의 r행 c열을 의미하고, Ar는 (r, c)에 있는 얼음의 양
BOJ 12886: 돌 그룹 https://www.acmicpc.net/problem/12886돌은 세 개의 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다.모든 그룹에 있는 돌의 개수를 같게 만들려고 한다.돌을 단계별로 움직이며, 각 단
BOJ 14395: 4연산 https://www.acmicpc.net/problem/14395정수 s의 값을 t로 바꾸는 최소 연산 횟수를 구한다.이 때 연산 과정을 출력한다.가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. s = s + s;
BOJ 16973: 직사각형 탈출 https://www.acmicpc.net/problem/16973격자판의 각 칸에는 빈 칸 또는 벽이 있다.직사각형은 벽이 있는 칸에 있을 수 없다.직사각형은 격자판을 벗어날 수 없다.직사각형은 한 번에 왼쪽, 오른쪽, 위,
BOJ 11931: 수 정렬하기 4 https://www.acmicpc.net/problem/11931N개의 수가 주어졌을 때, 이를 내림차순으로 정렬한다.원본 배열은 arr, 복사해놓을 배열은 temp로 한다.정렬 중 병합 정렬(Merge Sort)를 사용했
BOJ 1931: 회의실 배정 https://www.acmicpc.net/problem/1931각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾는다.회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음
BOJ 11501: 주식 https://www.acmicpc.net/problem/11501아래 세 가지 중 한 행동을 한다.주식 하나를 산다.원하는 만큼 가지고 있는 주식을 판다.아무것도 안한다.최대 이익이 얼마나 되는지 계산한다.더 미래의 날짜부터 거꾸로
BOJ 1654: 랜선 자르기 https://www.acmicpc.net/problem/1654K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다.시간 제한 : 2초이미 자른 랜선은 붙일 수 없다.랜선을 자르거나 만들 때 손실
BOJ 1744: 수 묶기 https://www.acmicpc.net/problem/1744수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶는다.어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자
BOJ 21608: 상어 초등학교 https://www.acmicpc.net/problem/21608학생은 1번부터 N2번까지 번호가 매겨져 있고, (r, c)는 r행 c열을 의미한다. 교실의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N,
BOJ 14891: 톱니바퀴 https://www.acmicpc.net/problem/14891가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 4번이다.4개 밖에 없다.톱니바퀴를 총 K번 회전시킨다.회전은 시계 방향과
BOJ 17070: 파이프 옮기기 1 https://www.acmicpc.net/problem/17070파이프는 항상 빈 칸만 차지해야 한다.파이프를 밀 수 있는 방향은 총 3가지가 있으며, →, ↘, ↓ 방향이다.파이프는 밀면서 회전시킬 수 있다. 회전은 4
BOJ 13335: 트럭 https://www.acmicpc.net/problem/13335트럭의 순서는 바꿀 수 없다.다리의 길이는 w 단위길이(unit distance)이며, 각 트럭들은 하나의 단위시간(unit time)에 하나의 단위길이만큼만 이동할 수
BOJ 14890: 경사로 https://www.acmicpc.net/problem/14890길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 모두 같아야 한다.경사로를 놓아서 지나갈 수 있는 길을 만들 수 있다.경사로는 높이가 항상 1이며, 길이는 L이다
BOJ 18405: 경쟁적 전염 https://www.acmicpc.net/problem/18405매 초마다 번호가 낮은 종류의 바이러스부터 먼저 증식한다.모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식해 나간다.특정한 칸에 이미 어떠한 바이러스가
BOJ 16235: 나무 재테크 https://www.acmicpc.net/problem/16235같은 1×1 크기의 칸에 여러 개의 나무가 심어져 있을 수도 있다.봄에는 나무가 자신의 나이만큼 양분을 먹고, 나이가 1 증가한다.각각의 나무는 나무가 있는 1×
BOJ 14888: 연산자 끼워넣기 https://www.acmicpc.net/problem/14888N개의 수로 이루어진 수열이 주어진다.수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다.연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)
BOJ 18428: 감시 피하기 https://www.acmicpc.net/problem/18428각 선생님들은 자신의 위치에서 상, 하, 좌, 우 4가지 방향으로 감시를 진행한다.단, 복도에 장애물이 위치한 경우, 선생님은 장애물 뒤편에 숨어 있는 학생들은
BOJ 17142: 연구소 3 https://www.acmicpc.net/problem/17142바이러스는 활성 상태와 비활성 상태가 있다.가장 처음에 모든 바이러스는 비활성 상태이고, 활성 상태인 바이러스는 상하좌우로 인접한 모든 빈 칸으로 동시에 복제되며,
BOJ 1941: 소문난 칠공주 https://www.acmicpc.net/problem/1941이다솜파: S, 임도연파: Y‘소문난 칠공주’는 다음과 같은 규칙을 만족해야 한다.7명의 여학생들로 구성되어야 한다.7명의 자리는 서로 가로나 세로로 반드시 인접해
BOJ 2110: 공유기 설치 https://www.acmicpc.net/problem/2110가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다.집의 개수 : 최대 1,000,000,000개공유기의 거리를 이진 탐색을 통해 찾는다.설정한
BOJ 17825: 주사위 윷놀이 https://www.acmicpc.net/problem/17825처음에는 시작 칸에 말 4개가 있다.화살표의 방향대로만 이동할 수 있다.말이 파란색 칸에서 이동을 시작하면 파란색 화살표를 타야 하고, 이동하는 도중이거나 파란
BOJ 5904: Moo 게임 https://www.acmicpc.net/problem/5904N (1 ≤ N ≤ 10^9)이 주어진다.Moo 수열은 재귀적으로 만들 수 있다.1보다 크거나 같은 모든 k에 대해서, S(k)는 S(k-1)과 o가 k+2개인 수열
BOJ 19236: 청소년 상어 https://www.acmicpc.net/problem/5904한 칸에는 물고기가 한 마리 존재한다.각 물고기는 번호와 방향을 가지고 있다.번호는 1보다 크거나 같고, 16보다 작거나 같은 자연수이며, 두 물고기가 같은 번호를
문제 > BOJ 11404: 플로이드 https://www.acmicpc.net/problem/11404 풀이 조건 n(2 ≤ n ≤ 100)개의 도시가 있다.(시간제한 : 1초) 시간복잡도가 O(N^3)인 플로이드-워셜 알고리즘을 사용할 수 있다. 모든 도시의
BOJ 23288: 주사위 굴리기 2 https://www.acmicpc.net/problem/23288크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다.가장 왼쪽 위에 있는 칸의 좌표는 (1, 1)이고, 가장 오른쪽 아래에 있는 칸의
BOJ 1916: 최소비용 구하기 https://www.acmicpc.net/problem/1916A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력한다.도시의 개수 N(1 ≤ N ≤ 1,000)버스의 개수 M(1 ≤ M ≤ 100,000)도시의 개수
BOJ 18808: 스티커 붙이기 https://www.acmicpc.net/problem/18808노트북의 위쪽부터 스티커를 채워 나가려고 해서, 스티커를 붙일 수 있는 위치가 여러 곳 있다면 가장 위쪽의 위치를 선택한다. 가장 위쪽에 해당하는 위치도 여러
BOJ 1113: 수영장 만들기 https://www.acmicpc.net/problem/1113범위 가장자리는 물이 빠져나간다기준 위치의 4방향의 높이가 모두 높아야 수영장이 된다.물의 높이를 1씩 높여가며 물이 담기는 넓이를 구한다.물이 담기는 위치를 BF
BOJ 2630: 색종이 만들기 https://www.acmicpc.net/problem/2630전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 똑같은 크기의 네 개의 색종이로 나눈다.잘라진 종이가 모두 하얀색 또는 모두 파
BOJ 4991: 로봇 청소기 https://www.acmicpc.net/problem/4991방은 크기가 1×1인 정사각형 칸으로 나누어져 있으며, 로봇 청소기의 크기도 1×1이다.로봇 청소기는 더러운 칸을 방문해서 깨끗한 칸으로 바꿀 수 있다.일부 칸에는
BOJ 17136: 색종이 붙이기 https://www.acmicpc.net/problem/17136색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있다.각 종류의 색종이는 5개씩 가지고 있다.색종이를 크기가 10×10인 종이 위에
BOJ 1068: 트리 https://www.acmicpc.net/problem/1068트리가 주어졌을 때, 노드 하나를 지운다.남은 트리에서 리프 노드의 개수를 구한다.트리 정보를 토대로 그래프 구조를 만든다.삭제할 노드 번호의 정보를 그래프에서 삭제한다.다
BOJ 1967: 트리의 지름 https://www.acmicpc.net/problem/1967트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있다.이런 두 노드 사이의 경로의 길이를 트리의 지름이라고 한다.트리 구조를 양방
BOJ 13460: 구슬 탈출 2 https://www.acmicpc.net/problem/13460보드의 세로 크기는 N, 가로 크기는 M이고, 편의상 1×1크기의 칸으로 나누어져 있다.가장 바깥 행과 열은 모두 막혀져 있고, 보드에는 구멍이 하나 있다.빨간
문제 > BOJ 17143: 낚시왕 https://www.acmicpc.net/problem/17143 풀이 조건 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하면 이동을 멈춘다. 다음은 1초 동안 일어나는 일이며, 아
BOJ 1912: 연속합 https://www.acmicpc.net/problem/1912n개의 정수로 이루어진 임의의 수열이 주어진다.이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다.수는 한 개 이상 선택해야 한다.시간
BOJ 4577: 소코반 https://www.acmicpc.net/problem/4577박스를 밀어서 목표지점까지 옮기는 게임과 같은 규칙이다.플레이어는 화살표(위, 아래, 왼쪽, 오른쪽)를 이용해 캐릭터를 아래와 같은 규칙으로 조정할 수 있다.캐릭터에게 지
BOJ 2571: 색종이 - 3 https://www.acmicpc.net/problem/2571검은색 색종이의 수와 각 색종이를 붙인 위치가 주어질 때 잘라낼 수 있는 검은색 직사각형의 최대 넓이를 구한다.종이가 붙는 위치를 모두 1로 초기화한다.종이가 붙은
BOJ 19237: 어른 상어 https://www.acmicpc.net/problem/19237상어에는 1 이상 M 이하의 자연수 번호가 붙어 있고, 모든 번호는 서로 다르다.N×N 크기의 격자 중 M개의 칸에 상어가 한 마리씩 들어 있다.상어가 뿌리는 냄새
BOJ 17780: 새로운 게임 https://www.acmicpc.net/problem/17780크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다.말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다.체스판의 각 칸은 흰색, 빨간색,
BOJ 17090: 미로 탈출하기 https://www.acmicpc.net/problem/17090크기가 N×M인 미로가 있고, 미로는 크기가 1×1인 칸으로 나누어져 있다. 미로의 각 칸에는 문자가 하나 적혀있다.적혀있는 문자에 따라서 다른 칸으로 이동할
BOJ 11053: 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성한다.i번째 수열의 값이 j번째 수열의 값보다 크다면 증가한다는 뜻이다.dpi의 값을 구하고
BOJ 2156: 포도주 시식 https://www.acmicpc.net/problem/2156포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다.연속으로 놓여 있는 3잔을 모두 마실 수는 없다.최대로
문제 > BOJ 10844: 쉬운 계단 수 https://www.acmicpc.net/problem/10844 풀이 조건 인접한 모든 자리의 차이가 1인 수를 계단 수라고 한다. 길이가 N인 계단 수가 총 몇 개 있는지 구한다. 풀이 순서 N번째 자릿수의 자릿값이
문제 > BOJ 2302: 극장 좌석 https://www.acmicpc.net/problem/2302 풀이 조건 공연을 보러 온 사람들은 자기의 입장권에 표시되어 있는 좌석에 앉아야 한다. 단, 자기의 바로 왼쪽 좌석 또는 바로 오른쪽 좌석으로는 자리를 옮길 수
BOJ 11052: 카드 구매하기 https://www.acmicpc.net/problem/11052카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된 카드팩, 카드 2개가 포함된 카드팩, ... 카드 N개가 포함된 카드팩과 같이 총
BOJ 9465: 스티커 https://www.acmicpc.net/problem/9465스티커는 2행 n열로 배치되어 있다.스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위,
BOJ 11057: 오르막 수 https://www.acmicpc.net/problem/11057오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다.수는 0으로 시작할 수 있다.수의 길이 N이 주어졌을 때, 오
BOJ 4883: 삼각 그래프 https://www.acmicpc.net/problem/4883삼각 그래프의 가장 위쪽 가운데 정점에서 가장 아래쪽 가운데 정점으로 가는 최단 경로를 찾는 문제이다.밑에서도 올 수 있고 바로 옆에서도 올 수 있다.1번째 높이는
BOJ 15486: 퇴사 2 https://www.acmicpc.net/problem/15486상담을 하는데 필요한 기간은 1일보다 클 수 있기 때문에, 모든 상담을 할 수는 없다.상담이 끝나는 날이 퇴사 이후라면 그 상담은 할 수 없다.최대 수익을 구한다.i
BOJ 2240: 자두나무 https://www.acmicpc.net/problem/2240매 초마다, 두 개의 나무 중 하나의 나무에서 열매가 떨어지게 된다.하나의 나무 아래에 서 있다가 다른 나무 아래로 빠르게(1초보다 훨씬 짧은 시간에) 움직일 수 있다.
BOJ 2293: 동전 1 https://www.acmicpc.net/problem/2293n가지 종류의 동전으로 그 가치의 합이 k원이 되도록 한다.그 경우의 수를 구한다.각각의 동전은 몇 개라도 사용할 수 있다.DP를 사용한다.점화식은 DP\[i] = DP
BOJ 1504: 특정한 최단 경로 https://www.acmicpc.net/problem/1504방향성이 없는 그래프가 주어진다.1번 정점에서 N번 정점으로 최단 거리로 이동하려고 한다.임의로 주어진 두 정점은 반드시 통과해야 한다두 개의 정점을 지나는 최
BOJ 10816: 숫자 카드 2 https://www.acmicpc.net/problem/10816숫자 카드 N개를 가지고 있다.정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 몇 개 가지고 있는지 구한다.가지고 있는 숫자 카드의 개수 N(1 ≤ N
BOJ 5557: 1학년 https://www.acmicpc.net/problem/5557마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만든다.만들 수 있는 올바른 등식의 수를 구한다.DP를 사용한다.2차원 배열
BOJ 2230: 수 고르기 https://www.acmicpc.net/problem/2230N개의 정수로 이루어진 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구한다.숫자 하나를 기준으로 문제 조건에 맞는
BOJ 1197: 최소 스패닝 트리 https://www.acmicpc.net/problem/1197최소 스패닝 트리를 구한다.크루스칼 알고리즘을 사용한다.간선의 비용을 오름차순으로 정렬한다.Union&Find를 사용해 트리에 사이클이 있는지 확인한다.우테캠
BOJ 16398: 행성 연결 https://www.acmicpc.net/problem/16398최소 스패닝 트리를 구한다.입력이 행렬로 들어오기 때문에 중복된 정보는 제거할 수 있도록 가공한다.2중 for문을 사용했다.답이 int형의 범위를 벗어날 수 있으므
BOJ 1647: 도시 분할 계획 https://www.acmicpc.net/problem/1647길의 유지비의 합을 최소로 한다.최소 스패닝 트리를 구한다.마을을 두 개의 분리된 마을로 분할한다.답이 int형의 범위를 벗어날 수 있으므로 long타입으로 선언
BOJ 14002: 가장 긴 증가하는 부분 수열 4 https://www.acmicpc.net/problem/14002가장 긴 증가하는 부분 수열을 구한다.수열의 크기 N의 범위: (1 ≤ N ≤ 1,000)수열을 이루고 있는 값의 범위 (1 ≤ Ai ≤ 1,