목록시뮬레이션 (44)
어흥
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 1. 주의할 점 - 구현해야 하는 조건이 많다 - 2개의 좌표를 어떤 방식으로 저장할 것인지 정한다 2. 구현 - BFS를 통해 문제를 해결한다 - Info 객체를 통해 로봇의 정보를 저장한다. 로봇의 한 좌표와 어떤 방향에 다른 좌표가 위치해 있는지 저장한다. - 우선순위큐 pq에 로봇의 정보를 담으며, 소요 시간의 오름차순으로 정렬한다 - Board의 정보를 static 변수..
문제 링크: https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 1. 주의할 점 - 구현할 부분이 많다 - 구슬을 어떻게 당길 것인가? - '파괴된'과 '폭파된' 구슬은 같지 않다 2. 구현 - Info 객체를 이용하여 1~Num^2-1까지 구슬의 위치를 V[] 배열에 담는다 - Arr[][]를 이용하여 현재 격자에 존재하는 구슬의 번호를 나타낸다 - Init() 함수를 이용하여 V[] 배열을 채운다 - M번 동안 지문에서 말한 ..
문제 링크: https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 1. 주의할 점 - 순서대로 정확히 구현을 한다 - 각 단계가 끝나고 초기화해야 할 부분들을 살핀다 2. 구현 - 배열의 범위와 방향을 1씩 줄인다 - Arr[][] 배열에 바구니의 상태를 담는다 - 최초에는 구름이 정해진곳에서 생성되므로 4구역을 Cloud 벡터에 담고 시작한다 - 각 단계가 시작하기 전에 init()을 통해 구름이 사라진곳을 나타내는 Check[][] 배열을..
문제 링크: https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 1. 주의할 점 - 모든 사항에 대해 정확히 구현한다 - 초기화를 잘 진행한다 - 끝나는 조건을 확인한다 - 무지개돌에 대한 처리를 잘 수행한다 2. 구현 - 격자에 대한 정보를 입력 받을 때, 무지개 돌의 색을 M+1로 바꾼다 - While문을 통해 BFS(), Gravity(), Rotate(), Gravity()를 순서대로 수행한다. 이때, BFS이후 finish의 값이 Tr..
문제 링크: https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 1. 주의할 점 - 우선순위 큐 정렬을 잘 정리한다 - 요구에 맞게 정확히 구현한다 2. 구현 - Arr[][] 배열을 통해 해당 자리에 위치한 학생 번호를 저장한다 - favorPeople[] Set을 통해 해당 학생이 선호하는 학생 번호를 저장한다 - score[] 배열을 통해 선호하는 학생들의 수에 해당하는 점수를 반환한다 - 배치할 학생들의 순서를 people 큐에 ..
문제 링크: https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=540 Softeer 제한시간 : C/C++(1초), Java/Python(2초) | 메모리 제한 : 256MB 자율주행 기술의 발전과 함께 차량 내 인포테인먼트 기술 또한 많은 주목을 받고 있다. 최근 자동차 실내에는 디스플레이의 대형화를 비 softeer.ai 1. 주의할 점 - 시뮬레이션을 통해 구현한다 - 최대한 최적화를 진행해야 겨우 통과한다 - 같은 색의 차량 1대도 사라질 수 있다 2. 구현 - 3번의 DFS() 함수를 수행한다 - DFS() 함수내에는 다음과 같은 기능을 순차적으로 수행한다 - 현재 차량의 상태를 나타내는 Arr[][] 배열을 Dup[][] 배열에 저장한다 ..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 1. 주의할 점 - 구현할 부분이 많으니 헷갈리지 않도록 변수명 및 함수명을 잘 작성한다 2. 구현 - 가로/세로의 최대길이가 5..
문제 링크: www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 1. 주의할 점 - BFS 수행 도중, 0이 남아있지 않다면 BFS를 종료해도 된다 - 0이 없거나 극단적인 경우(Edge case)도 고려한다 더보기 TC #1 4 1 2 2 2 0 2 2 2 2 2 2 2 2 0 2 2 2 AC: 3 2. 구현 - 연구소에 대한 정보를 Arr[][]에 담고, 0의 개수를 Zero에 저장한다 - 바이러스의 좌표를 Virus 벡터에 담는다 - V 벡터를 통해 next_per..