Algorithm 306

뱀과 사다리 게임

📍 문제 설명 https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 💡 접근 1번에서 100번으로 가는데 사다리면 앞으로 뱀이면 뒤로가게 하면된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { stat..

Algorithm/baekjoon 2022.03.15

빙고

📍 문제 설명 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 💡 접근 사회자가 부르는 수를 빙고판에 기록해두고 최소로 빙고를 외칠 수 있는 숫자부터 빙고판 확인하면 되는 문제였다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m,..

Algorithm/baekjoon 2022.03.03

소가 길을 건너간 이유 1

📍 문제 설명 https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 💡 접근 맵을 이용해서 소가 길을 건넜는지 확인해주고 소의 위치를 변경해주면된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m, v, e, k, r, ..

Algorithm/baekjoon 2022.03.03

기적의 매매법

📍 문제 설명 https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 💡 접근 조건별로 주식량을 구하면 되는 문제. 성민이의 매수/매도 방식이 3일로만 고정되어 있어 따로 변수를 사용하지 않았다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public cla..

Algorithm/baekjoon 2022.03.03

상어 초등학교

📍 문제 설명 https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 💡 접근 비어있는 칸 중에서 좋아하는 학생이 인접한 칸에 가장 많은 칸으로 자리를 정한다. 1을 만족하는 칸이 여러 개이면, 인접한 칸 중에서 비어있는 칸이 가장 많은 칸으로 자리를 정한다. 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가장 작은 칸으로, 그러한 칸도 여러 개이면 열의 번호가 가장 작은 칸으로 자리를 정한다 이 3가지 조건을 알맞게 구현하면 되는 문..

Algorithm/baekjoon 2022.03.02

스택 수열

📍 문제 설명 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 💡 접근 문제 그대로 스택을 이용해서 만들 수 있는 수열인지 확인해주는 문제. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; publi..

Algorithm/baekjoon 2022.03.02

Two Dots=========

📍 문제 설명 https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net 💡 접근 모든 좌표에 대해서 상하좌우로 뻗어나간 후 사이클이 만들어지는지 확인하고 만들어지면 바로 끝내버리면 되는 문제 문제 조건에서 사이클은 점이 현재 3개 이상 연결되어 있고 다음 지점이 첫 지점이면 사이클이 된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputS..

Algorithm/baekjoon 2022.03.02

2048

📍 문제 설명 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 💡 접근 각 위치에서 4방향으로 모두 이동하게 재귀 호출하는 것까지는 문제가 없었는데 해당 방향으로 볼록을 이동시키는 부분에서 너무 어려웠다. 해당 부분은 타 블로그를 참고했다.. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader..

Algorithm/baekjoon 2022.03.01

가르침

📍 문제 설명 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 💡 접근 조합 문제. 단어의 시작과 끝은 무조건 'anta', 'tica'로 끝나기때문에 최소 5글자를 배워야 한다. 모든 단어에 대해서 확인하는 것은 메모리 낭비가 될 수 있으므로 5글자를 제외한 단어만 본다. 해당 단어들을 제외한 단어들로 조합을 돌려서 읽을 수 있는 단어인지 확인하면된다. 👩‍💻 코드 import java.io.BufferedReader; import j..

Algorithm/baekjoon 2022.03.01

부분수열의 합

📍 문제 설명 https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 www.acmicpc.net 💡 접근 부분 수열의 합 중에서 제일 작은 자연수를 찾는 문제 1부터 증가시키면서 셋에 담겨있는 합인지 확인하고 존재하지 않는 값이 나올 때 멈춰주면 된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr..

Algorithm/baekjoon 2022.03.01