본문 바로가기
반응형

시뮬레이션10

[백준] 17144 - 미세먼지 안녕! [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 17144번: 미세먼지 안녕! 1. 문제 R*C 크기의 격자판에서 공기청정기는 항상 1번 열에 2칸을 차지하고, 나머지 칸에는 미세먼지의 양이 나타난다. 1초 동안 아래 적힌 일이 순서대로 일어난다. 미세먼지가 확산된다. 확산은 미세먼지가 있는 모든 칸에서 동시에 일어난다. (r, c)에 있는 미세먼지는 인접한 네 방향으로 확산된다. 인접한 방향에 공기청정기가 있거나, 칸이 없으면 그 방향으로는 확산이 일어나지 않는다. 확산되는 양은 Ar,c/5이고 소수점은 버린다. (r, c)에 남은 미세먼지의 양은 Ar,c - (Ar,c/5)×(확산된 방향의 개수) 이다. 공기청정기가 작동한다. 공기청정기에서는 바람이 나온다. 위쪽 공기청정기의 바람은 반시계.. 2021. 11. 22.
[백준] 17143 - 낚시왕 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 17143번: 낚시왕 1. 문제 R*C 크기의 격자판에서 낚시왕은 가장 왼쪽 열부터 오른쪽 끝까지 이동한다. 낚시왕이 오른쪽으로 한 칸 이동한다. 낚시왕이 있는 열에 있는 상어 중에서 땅과 제일 가까운 상어를 잡는다. 상어를 잡으면 격자판에서 잡은 상어가 사라진다. 상어가 이동한다. 상어는 입력으로 주어진 속도로 이동하고, 속도의 단위는 칸/초이다. 상어가 이동하려고 하는 칸이 격자판의 경계를 넘는 경우에는 방향을 반대로 바꿔서 속력을 유지한채로 이동한다. 상어가 이동을 마친 후 한 칸에 상어가 두 마리 이상 있을 경우 크기가 가장 큰 상어만 남는다. 낚시왕이 잡은 상어 크기의 합을 출력한다. 2. 풀이 시뮬레이션를 이용한 문제 풀이 낚시왕이 상.. 2021. 11. 22.
[백준] 17140 - 이차원 배열과 연산 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 17140번: 이차원 배열과 연산 1. 문제 크기가 3×3인 배열 A가 있다. 1초가 지날때마다 배열에 연산이 적용된다. R 연산: 배열 A의 모든 행에 대해서 정렬을 수행한다. 행의 개수 ≥ 열의 개수인 경우에 적용된다. C 연산: 배열 A의 모든 열에 대해서 정렬을 수행한다. 행의 개수 < 열의 개수인 경우에 적용된다. 정렬은 수의 등장 횟수가 커지는 순으로, 그러한 것이 여러가지면 수가 커지는 순으로 정렬한다. 행 또는 열의 크기는 가장 큰 행 또는 열을 기준으로 크기를 정하고, 행 또는 열의 크기가 커진 곳에는 0이 채워진다. A[r][c]에 들어있는 값이 k가 되기 위한 연산의 최소 시간을 출력한다. 100초가 지나도 A[r][c] = .. 2021. 11. 22.
[백준] 15685 - 드래곤 커브 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 15685번: 드래곤 커브 1. 문제 이차원 좌표 평면 위에서 드래곤의 커브를 그린다. 드래곤은 세 가지 속성(시작 점, 시작 방향, 세대)을 가진다. K세대 드래곤 커브는 K-1세대 드래곤 커브를 시계 방향으로 90도 회전시킨 다음 K-1세대 드래곤 커브의 끝 점에 붙인 것이다. 다음과 같은 조건을 따른다. 이차원 좌표 : 0 ≤ x, y ≤ 100 드래곤의 시작 방향 : 0 ≤ d ≤ 3 드래곤 커브의 세대 : 0 ≤ g ≤ 10 드래곤 커브의 방향 : 0: x좌표가 증가하는 방향 (→) 1: y좌표가 감소하는 방향 (↑) 2: x좌표가 감소하는 방향 (←) 3: y좌표가 증가하는 방향 (↓) 드래곤 커브는 격자 밖을 벗어나지 않고 서로 겹칠.. 2021. 11. 22.
[백준] 14891 - 톱니바퀴 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14891번: 톱니바퀴 1. 문제 톱니바퀴는 총 4개 존재한다. 톱니바퀴는 총 8개의 톱니를 가지고, 톱니는 N극과 S극 중 하나를 가진다. 톱니바퀴의 회전은 시계 방향(0)과 반시계 방향(1)이 있고 K번 회전한다. 특정 톱니바퀴가 회전할 때, 인접한 톱니는 극이 다르면 반대로 회전하고, 같으면 회전하지 않는다. 총 K번 회전시킨 이후에 네 톱니바퀴의 12시 방향을 통해 점수를 출력한다. 2. 풀이 시뮬레이션을 이용한 문제 풀이 톱니바퀴의 회전 함수를 구현한다. K번의 회전 마다 회전하는 톱니와 방향을 배열에 저장한다. 배열에 존재하는 톱니 회전한다. 3. 코드 T = [list(map(int, input().strip())) for _ in .. 2021. 11. 22.
[백준] 14890 - 경사로 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14890번: 경사로 1. 문제 크기가 N*N인 지도의 각 칸에는 높이가 적혀있다. 지도의 길은 N개의 행과 N개의 열로 총 2N개이다. 길을 지나기 위해서는 길에 속한 모든 칸의 높이가 같거나 경사로를 놓아야 한다. 경사로 조건은 다음과 같다. 경사로는 낮은 칸에 놓으며, L개의 연속된 칸에 경사로의 바닥이 모두 접해야 한다. 낮은 칸과 높은 칸의 높이 차이는 1이어야 한다. 경사로를 놓을 낮은 칸의 높이는 모두 같아야 하고, L개의 칸이 연속되어야 한다. 유효한 길의 개수를 출력한다. 2. 풀이 시뮬레이션을 이용한 문제 풀이 경사로는 반드시 1 -> 앞 뒤 차이가 2 이상이면 불가 길의 확인 방향은 계산하기 쉽게 행은 동쪽, 열은 남쪽 오르막.. 2021. 11. 22.
[백준] 14503 - 로봇 청소기 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14503번: 로봇 청소기 1. 문제 로봇 청소기가 청소하는 영역 NxM이 주어지며, 각각의 칸은 벽(1) 또는 빈 칸(0)이다. 로봇 청소기는 다음과 같이 동작한다. 현재 위치를 청소한다. 현재 위치에서 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. 왼쪽 방향에 청소할 공간이 없다면, 그 방향으로 회전하고 2번으로 돌아간다. 네 방향 모두 청소가 이미 되어있거나 벽인 경우에는, 바라보는 방향을 유지한 채로 한 칸 후진을 하고 2번으로 돌아간다. 네 방향 모두 청소가 이미 되어있거나 벽이면서, 뒤쪽 방향이 벽이라 후진도.. 2021. 11. 22.
[백준] 14499 - 주사위 굴리기 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14499번: 주사위 굴리기 1. 문제 크기가 N*M인 지도와 북쪽으로 r만큼, 서쪽으로 c만큼 떨어진 (r,c) 위치에 주사위가 존재한다. 지도의 각 칸에는 정수가 하나씩 쓰여져 있다. 초기 주사위는 모든 면이 0이다. 주사위를 굴렸을 때 지도의 바닥면 == 0: 지도의 바닥면 = 주사위의 바닥면 지도의 바닥면 != 0: 주사위의 바닥면 = 지도의 바닥면 주사위의 명령은 동쪽은 1, 서쪽은 2, 북쪽은 3, 남쪽은 4로 주어진다. 주사위를 이동할 때 마다 주사위의 윗 면에 쓰여진 수를 출력한다. 2. 풀이 시뮬레이션을 이용한 문제 풀이 주사위가 돌아가는 함수 구현한다. (손으로 그려보면서 하면 금방 할 수 있다. 머리로만 하지말자...) 3. .. 2021. 11. 22.
[백준] 3190 - 뱀 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 3190번: 뱀 1. 문제 몇몇 칸에 사과가 위치한 N*N 보드 위에서 뱀이 이동한다. 뱀이 사과를 먹으면 뱀 길이가 늘어나고, 벽 또는 자신의 몸과 부딪히면 게임이 끝난다. 뱀의 첫 위치는 맨위 맨좌측이며 길이는 1이다. 뱀의 처음은 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, 몸길이는 변하지 않는다. 주어진 뱀으 방향 변환은 왼쪽(L), 오른쪽(D)이 있다. 게임이 몇 초에 끝나는지 출.. 2021. 11. 22.
반응형