알고리즘 문제 풀이/BOJ 38

[backjoon] 20057 마법사 상어와 토네이도 java

https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 배열을 달팽이모양으로 순회하고 비율에 맞게 모래 값을 처리하면 된다. 주의할 점은 방향 따라서 값도 바뀌기때문에 방향에 맞게 비율들의 이동 값도 일일이 정해줘야한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4..

[backjoon]17822 원판 돌리기 java

https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 원형이라고 해서 겁먹었는데 2차원 배열과 모듈러 연산을 이용해서 풀이하면 쉽게 풀 수 있다. 문제를 살펴보면 구현해야할 것은 1. 원판 이동 - Queue를 이용해서 이동 하는 칸 수 만큼 모듈러 연산을 이용하여 저장 후 이동시켜주었다. move() 2. 인접한 값들의 확인. - 원판 이동 후 인접한 값들에 대해 확인하는 것은 일일이 다 비교를 해주었다. 값이 크지 않기 때문에 가..

[backjoon]17144 미세먼지 안녕! java

https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 문제에서 요구하는 것은 2가지. 먼지 퍼지기랑 공기 순환 1. 먼지 퍼지기 - 전체 다 파악하면서 먼지를 퍼지게 해준다. - 주의할 점은 원래 미세먼지가 있는 곳과 미세먼지가 새로 생기는 곳을 분리하지 않으면 값이 엉킬수가 있어서 추가로 더해지는 배열을 만들어서 마지막에 합쳐준다. - 미세먼지가 퍼지거나 배열을 마지막메 합쳐주고, 새로 만들어주는 과정에서 절대절대 공기청정기를 잘 생각해줘야한다...

[backjoon]14500 테트로미노 java

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 돌린 배열을 바탕으로 다 확인해야하는데 이게 어떻게 Gold5밖에 안 되는지 처음엔 말이 안 된다고 생각했는데, 가만 보면 금방 풀 수 있다. 폴리오미노라는 도형들을 보면 공통적으로 4개임을 알 수 있다. 또한, ㅜ 모양을 제외하고는 한 점에서 중복되지 않고 3번 더 갔을 때의 경로들임을 아는 것이 문제의 포인트! 즉, ㅜ 모양을 제외하고는 모든 모양이 4방향으로 갈 수 있는 모든 경로임을 알 수..

[backjoon] 23288 주사위 굴리기 2 java

https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 주사위 굴리기 1과 매우 유사한데 희한한 BFS가 추가되었다. 1. 주사위를 굴린다. 주사위를 굴릴 수가 없다면 반대 방향으로 굴린다. 2. 굴려진 위치와 그 주변을 탐색해서 숫자가 같은 것들의 갯수를 구한다. 문제 해독이 좀 어려웠다... 주사위는 1차원 배열을 이용해서 위치만 바꿔주는 방식으로 구현하였다. 주사위 굴리는 방법은 [backjoon]14499 주사위 굴리기 jav..

[backjoon]14499 주사위 굴리기 java

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 이 문제에서 요구하는 것은 두 가지. 1. 주사위 굴리기 2. 방향에 맞게 이동하기 제일 막막한 주사위 굴리기. 그치만 한번 익히면 거의 공식 수준으로 쉽다. 1차원배열, 2차원배열 아무거나 써도 되고 구현하는 사람마다 다르지만 , 단순하게 얘기하면 주사위 전개도를 배열화 해서 그 안에서 값의 위치 이동만 시켜주면 된다. 북쪽으로 ..

[backjoon]19237 어른 상어 java

https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 빡구현 문제! 이 문제에서 요구하는 것은 세 가지라고 생각한다. 1. 상어의 이동 2. 냄새의 관리 3. 상어자체에 대한 정보 관리(방향, 현재 상태) 이 세가지가 유기적으로 관련되어 있어서 하나가 꼬이면 더럿 꼬이는 것 같다. 초기화 과정이 매우 긴 것도 문제를 헷갈리게 하는 것 같다. 문제 풀이 1. 상어의 이동 1) 현재 방향의 우선 순위에 맞게 ..

[backjoon] 삼성 SW 역량 테스트 기출 문제 풀이 목록 java

https://www.acmicpc.net/workbook/view/1152 13460 구슬 탈출 2 12100 2048 (Easy) 3190 뱀 13458 시험 감독 14499 주사위 굴리기 14500 테트로미노 14501 퇴사 14502 연구소 14503 로봇 청소기 14888 연산자 끼워넣기 14889 스타트와 링크 14890 경사로 14891 톱니바퀴 15683 감시 15684 사다리 조작 15685 드래곤 커브 15686 치킨 배달 5373 큐빙 16234 인구 이동 16235 나무 재테크 16236 아기 상어 17144 미세먼지 안녕! 17143 낚시왕 17140 이차원 배열과 연산 17142 연구소 3 17779 게리맨더링 2 17837 새로운 게임 2 17822 원판 돌리기 17825 주사..

반응형