전체 글 396

[backjoon]20055 컨테이너 벨트 위의 로봇 java

https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778import java.io.*;import java.util.*; public class Main { static ..

[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] 17837 새로운 게임 2 java

https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 구조체 잘 다루는 게 중요한 문제! 삼성 문제는 정말... 구조체 다루기, BFS/DFS, 2차원 배열 돌리기 가 전부인 듯하다...ㅜㅜ 일단 필요한 구조체는 체스판의 색을 관리할 int형태의 이차원 배열 움직이는 말을 관리할 리스트 이차원 배열 말의 정보를 관리할 배열이다 스와 움직이는 말은 정수형태/리스트 형태로 만들어주었다. 말의 정보는 위치와 방향이 관리되어야하기에 구조체를 만들어서 배..

[backjoon] 19236 청소년 상어 java

https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 절대절대 이 문제는 값을 독립적으로 관리하는게 중요하다. 최종값을 제외하고 변수의 수명을 짧게 관리하는게 이 문제의 고생을 줄일 수 있는 길!! 얕은 복사/깊은 복사에 엄청 호되게 당했다... 문제 풀이 자체도 그리 단순하지도 않다. 구현 사항을 정리하자면, 1. 상어가 물고기 먹음. 2. 물고기 이동. 3. 상어의 사냥 세 가지이다. 자료구조는 물고기의 구조체 배열(숫자가 작은..

카테고리 없음 2022.03.31

[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..

반응형