본문 바로가기

알고리즘/삼성 SW 역량 테스트 기출26

백준 21611 마법사 상어와 블리자드 - 삼성 SW 역량 테스트 기출 백준 21611 마법사 상어와 블리자드 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 2차원 배열에서 달팽이처럼 빙글빙글 돈다. 2. 아래의 순서대로 반복한다. 마법 사용 2차원 배열 -> 1차원 배열 반복{ 구슬 이동 구슬 폭발 (폭발 없으면 반복 멈춤) } 구슬 변화 1차원 배열 -> 2차원 배열 3. 2차원 배열을 순회할 때, 달팽이처.. 2021. 9. 21.
백준 20057 마법사 상어와 토네이도 - 삼성 SW 역량 테스트 기출 백준 20057 마법사 상어와 토네이도 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 토네이도는 서 남 동 북 순으로 이동하며 각 방향으로 2턴 마다 이동거리가 길어진다. (1 1 2 2 3 3 4 4 ...) 2. 이동 방향에 따라 모래를 날리는 케이스가 4가지가 존재하므로 각각 구현했다. . Pair 클래스를 만들어 각 방.. 2021. 9. 20.
백준 20056 마법사 상어와 파이어볼 - 삼성 SW 역량 테스트 기출 백준 20056 마법사 상어와 파이어볼 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 이 문제는 꼼꼼히 보지 않으면, 안 되는 문제이다. 요구하는 조건이 많다. 2. 파이어볼은 8방향으로 움직이며, 격자를 벗어나게 되는 경우 N행 1행, N열 1열로 넘어갈 수 있다. 3. 파이어볼은 한 칸에 여러개가 있으므로, List.. 2021. 9. 9.
백준 14503 로봇 청소기 - 삼성 SW 역량 테스트 기출 백준 14503 로봇 청소기 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 단순 구현 문제긴 하나, 로봇의 움직임이 꽤나 복잡하므로 꼼꼼하게 구현해야 한다. 2. Robot 클래스를 만들어, 위치와 방향을 갖도록 했다. 3. 로봇의 움직임은 회전-> 이동의 두 단계로 구성되어 있다. . 먼저 회전을 시키면서 이동할 수 있는 칸이 있는지 탐색한다. . 이동할.. 2021. 9. 8.
백준 17142 연구소 3 - 삼성 SW 역량 테스트 기출 백준 17142 연구소 3 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 이 문제에서 생각해야하는 로직은 크게 2가지였다. 2. 바이러스를 놓을 수 있는 위치 중 M 개를 골라 각 케이스 별로 조사해야 한다. . 이는 조합을 활용하여 쉽게 해결할 수 있다. . 한 케이스가 끝난 후 연구소 배열과 방문 배열을 초기화해줘야 한다. 3. 비활성 바이러스는 이미 전파되어 있.. 2021. 9. 8.
백준 14502 연구소 - 삼성 SW 역량 테스트 기출 백준 14502 연구소 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 이 문제는 벽 3개를 세우는 케이스마다 각각 조사하여 안전영역의 최댓값을 계속 갱신해야 한다. 2. Input으로 연구소 정보에 대한 배열을 받을 때, 두 가지 배열을 사용한다. . board : 각 케이스별로 BFS를 수행할 때 사용할 연구소 정보 . copyBoard : 각 케이스가 끝난 후 boa.. 2021. 9. 5.