시뮬레이션 68

백준 3987번 보이저 1호

문제 링크입니다: https://www.acmicpc.net/problem/3987 3987번: 보이저 1호 문제 보이저 1호는 1977년에 발사된 NASA의 태양계 무인 탐사선이다. 현재 보이저 1호는 태양권덮개 (헬리오시스)에 있다. 보이저 1호와 같이 오랜 기간동안 활동하는 탐사선은 경로를 항성계를 만� www.acmicpc.net 행성에 의해 반사되는 방향을 미리 매핑해 놓으면 풀기 수월한 문제였습니다. visited 배열을 이차원이 아닌 방향까지 고려하여 삼차원 배열로 선언하는 것이 핵심이였습니다! 개발환경:Visual Studio 2019 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.06.03

백준 18808번 스티커 붙이기

문제 링크입니다: https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연� www.acmicpc.net 90도 회전을 시켰을 경우 R과 C 값이 바뀌는 부분만 적절히 처리한다면 쉽게 해결할 수 있는 문제였습니다. 저 같은 경우에는 cnt의 값에 따라 모듈러 연산을 통해 R과 C 값을 스왑하는 식으로 해결했습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.06.02

백준 17837번 새로운 게임 2

문제 링크입니다: https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하� www.acmicpc.net 저번 문제와 마찬가지로 문제에 주어진대로 그대로 코드를 작성하면 되는 문제였습니다. 주어진 조건 1 ~ 4번 중에 1, 2번 그리고 3, 4번이 각각 유사한 성격을 지녔기 때문에 묶어서 처리했습니다. 범위를 벗어나는 부분과 파란색 칸은 완전 똑같기 때문에 바로 예외처리를 해줬고 하얀색 칸과 빨간색 칸 같은 경우 뒤집는 파트를 제외하면 동일했기 때문에 뒤집는 파트만 조건문을 ..

알고리즘/BOJ 2020.05.27

백준 17822번 원판 돌리기

문제 링크입니다: https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 여타 다른 삼성 코딩 테스트처럼 문제를 잘 읽고 그대로 구현하면 되는 문제였습니다. 원판을 시계방향 혹은 반시계방향으로 돌리기 때문에 저는 원판을 간단하게 구현하기 위해 덱 (deque)으로 구현했습니다. (해당 내용은 turnRullet 함수를 참고해주세요) 주의할 점은 덱으로 구현했기 때문에 인접한 요소를 찾을 때 덱의 front()와 덱의 back()이 인접..

알고리즘/BOJ 2020.05.26

백준 17779번 게리맨더링 2

문제 링크입니다: https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름�� www.acmicpc.net 생각보다 문제를 이해하기 어려웠던 문제였습니다. 대체로 삼성 문제는 실제 구현을 하는 과정보다 문제를 이해하는 과정이 더 어렵게 느껴지는 것 같습니다. (책 읽는 것을 습관화해야하는 이유) 아무튼, 문제를 이해하고 나면 별로 어렵지 않은 문제입니다. 문제를 읽다보면 선거구를 나누는 방법이 주어집니다. 여기서 저희가 주목해야할 파트는 2번과 4번입니다. 2번과 4번에 주어진 구간을 ..

알고리즘/BOJ 2020.04.30

백준 17825번 주사위 윷놀이

문제 링크입니다: https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 주사위 윷놀이는 다음과 같은 게임판에서 하는 게임이다. 처음에는 시작 칸에 말 4개가 있다. 말은 게임판에 그려진 화살표의 방향대로만 이동할 수 있다. 말이 파란색 칸에서 이동을 시작하면 � www.acmicpc.net 각 칸마다 도, 개, 걸, 윷, 모 가 나올 때 도착할 수 있는 지점을 미리 저장해놓고 모든 경우의 수를 시뮬레이션을 돌려 풀었던 문제였습니다. 말은 총 4개이고 주사위는 10번 굴렸기 때문에 4^10 즉, 2^20 이기 때문에 시간 내 돌아갈 수 있다는 것은 자명합니다. 각 말은 0, 1, 2, 3 으로 표시하였고 이진수로 00, 01, 10, 11 과 같이 표현했습니다. ..

알고리즘/BOJ 2020.04.30

백준 2980번 도로와 신호등

문제 링크입니다: https://www.acmicpc.net/problem/2980 2980번: 도로와 신호등 문제 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔다. (빨강색과 초록색 불빛은 무한히 반복된다) 상근이의 트럭이 도로에 진입했을 때, 모든 신호등의 색상은 빨간색이고, 사이클이 막 시작한 상태이다. 상근이는 1초에 1미터를 움직인다. 신호등의 색상이 빨간색인 경우에는 그 자리에서 멈추고 초록색으로 바뀔때 까지 기다린 www.acmicpc.net 신호등이 최대 백개이기 때문에 완전탐색으로 시뮬레이션을 돌리면 쉽게 해결할 수 있는 문제였습니다. 개발환경:Vis..

알고리즘/BOJ 2020.04.04

백준 2933번 미네랄

문제 링크입니다: https://www.acmicpc.net/problem/2933 2933번: 미네랄 문제 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄이 저장되어 있으며, 던진 막대기가 미네랄을 파괴할 수도 있다. 동굴은 R행 C열로 나타낼 수 있으며, R×C칸으로 이루어져 있다. 각 칸은 비어있거나 미네랄을 포함하고 있으며, 네 방향 중 하나로 인접한 미네랄이 포함된 두 칸은 같은 클러스터이다. 창영은 동굴의 왼쪽에 www.acmicpc.net 해당 문제는 새로 생긴 클러스터가 바닥에 닿을 때까지 클러스터들을 한칸씩 내리는 것이 핵심인 문제였습니다. 새로 생긴 클..

알고리즘/BOJ 2019.10.07

백준 17135번 캐슬 디펜스

문제 링크입니다: https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net next_permutation을 이용한 시뮬레이션 문제였습니다. 이런 유형은 삼성 A형에 자주 출제되는 유형이므로 익혀두는 것이 좋을 것 같습니다. 흐름에 따라 코드를 작성하면 되므로 별도의 설명은 주석으로 대체하겠습니다.

알고리즘/BOJ 2019.08.06

백준 9376번 탈옥

문제 링크입니다: https://www.acmicpc.net/problem/9376 9376번: 탈옥 문제 상근이는 감옥에서 죄수 두 명을 탈옥시켜야 한다. 이 감옥은 1층짜리 건물이고, 상근이는 방금 평면도를 얻었다. 평면도에는 모든 벽과 문이 나타나있고, 탈옥시켜야 하는 죄수의 위치도 나타나 있다. 감옥은 무인 감옥으로 죄수 두 명이 감옥에 있는 유일한 사람이다. 문은 중앙 제어실에서만 열 수 있다. 상근이는 특별한 기술을 이용해 제어실을 통하지 않고 문을 열려고 한다. 하지만, 문을 열려면 시간이 매우 많이 걸린다. 두 죄수를 탈옥시키기 위해서 열어 www.acmicpc.net 문자열 배열을 전역으로 놓은 상태에서 push_back을 해서 끊임없이 틀렸던 문제였습니다. 이런 유형의 문제는 적지 않게..

알고리즘/BOJ 2019.07.31