반응형 Problem Solving/삼성 SW 역량 테스트 기출40 백준 19236 : 청소년 상어 https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net [ 문제풀이 ] 상어 시리즈 2번째 문제 청소년 상어이다. 차근차근 하나씩 구현해간다면 어렵지 않게 풀 수 있을 것이다. 푸는 방법이 다양하게 존재하겠지만 나는 상어를 기준으로 물고기를 관리하는 식으로 구현하였다. 1. 상어를 기준으로 잡고 상어 밑에서 물고기를 관리하는 맵을 만든다. 물고기를 관리하는 맵은 총 2가지로 구현하였다. 첫 번째는 1차원 배열의 fish이다. 1~1.. 2021. 8. 6. 백준 16236 : 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net [ 문제풀이 ] 상어 시리즈 첫 번째 문제 아기 상어이다. 주어진 조건대로 구현하면 된다. 경우의 수가 여러 개인 시뮬레이션이 아닌 하나의 상어를 계속 움직이는 것이기 때문에 구현에 크게 어려움이 없을 것이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.. 2021. 8. 6. 백준 20061 : 모노미노도미노 2 https://www.acmicpc.net/problem/20061 20061번: 모노미노도미노 2 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net [ 문제풀이 ] 단순 노가다 빡구현 문제이다. 주어진 조건에 맞게 블록들을 시뮬레이션 시켜주면 된다. 빡구현 문제는 설계를 잘해도 실수 한 번만하면 디버깅하는데 정말 힘든 것 같다. move 배열을 이용하여 블록들을 이동시켰는데 연한 영역 부분을 빠뜨리는 바람에 굉장히 힘들었다. import java.io.BufferedReader; import java.io.BufferedWriter.. 2021. 8. 3. 백준 17825 : 주사위 윷놀이 https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 주사위 윷놀이는 다음과 같은 게임판에서 하는 게임이다. 처음에는 시작 칸에 말 4개가 있다. 말은 게임판에 그려진 화살표의 방향대로만 이동할 수 있다. 말이 파란색 칸에서 이동을 시작하면 www.acmicpc.net [ 문제풀이 ] 단순 구현 문제이다. 총 경우의 수가 4^10 = 약 100만 정도이기 때문에 모든 경우의 수를 다 시뮬레이션 해보면 된다. 조심해야 할 점은 같은 번호의 칸이 존재하기 때문에 놓을 수 있는 경우도 생긴다. 이를 관리하기 위해 각 말에다 방향을 부여하여 관리한다. 16, 22, 24, 26, 28은 방향이 다르다면 같은 번호라도 놓을 수 있다. 30은 앞의 칸보다 조금 생각해야 할.. 2021. 8. 3. 백준 17822 : 원판 돌리기 https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net [ 문제풀이 ] 이번에도 동일하게 시뮬레이션 문제이다. 주어진 조건대로 구현하면 정답을 쉽게 맞힐 수 있을 것이다. 조건을 하드 코딩해서 풀어도 되지만 하드 코딩하면 실수 시 디버깅하기가 힘들기 때문에 조금 구현하기 쉽게 설계하여 풀었다. 1. 먼저 방향을 한 방향으로 통일한다. 반시계 방향을 시계 방향으로 변경 후 한 방향으로 회전시키는 함수만 구현하면 훨씬 간단하다. 2. .. 2021. 8. 3. 백준 17837 : 새로운 게임 2 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net [ 문제풀이 ] 이번에도 시뮬레이션 문제이다. 2차원 List를 선언하여 말들을 관리해 주면 간단하게 해결할 수 있다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWri.. 2021. 8. 3. 백준 17779 : 게리맨더링 2 https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net [ 문제풀이 ] N의 범위가 작기 때문에 가능한 x, y, d1, d2 경우를 모두 구해서 최솟값을 구하면 되는 문제이다. 전체를 5구간으로 먼저 채워놓고 1, 2, 3, 4 구간을 업데이트해주는 식으로 구현하면 조금 더 쉽게 구현할 수 있다. 각 구간마다 경계선 안쪽으로 가는 구간만 조심해서 범위를 지정해 주면 쉽게 해결할 수 있을 것이다. import java.io.BufferedReader; im.. 2021. 8. 3. 백준 17142 : 연구소 3 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net [ 문제풀이 ] 바이러스를 선택할 수 있는 모든 경우의 수를 다해보면 해결할 수 있는 문제이다. 다만, 조심해야 할 점이 두 가지 있다. 첫 번째는 마지막 예제처럼 바이러스를 퍼트릴 빈 공간(0)이 없다면 바이러스를 퍼뜨리지 말고 바로 종료해 줘야 한다. 두 번째는 선택되지 않은 바이러스 영역이다. 선택되지 않은 바이러스(2)를 활성화시켜 다른 빈 공간(0)으로 퍼뜨릴 수 있다면 활성화시키고, 만약 선.. 2021. 8. 3. 백준 17140 : 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net [ 문제풀이 ] 주어진 조건에 따라 시뮬레이션을 돌리는 문제이다. 100개를 초과하는 숫자는 제외하기 때문에 이 부분만 조심해서 구현한다면 쉽게 해결할 수 있을 것이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReade.. 2021. 8. 3. 이전 1 2 3 4 5 다음 반응형