구현

📖 문제 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 💡 풀이 방식 • 시뮬레이션 + BFS 1. 크기가 가장 큰 블록 그룹을 찾는다. → BFS static Block findMaxBlockGroupe() { visited = new boolean[N][N]; Block maxBlock = new Block(0, 0, EMPTY, Integer.MIN_VALUE, Integer.MIN_VALUE); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) ..
📖 문제 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 💡 풀이 방식 • BFS 인구 이동이 가능하지 않을 때까지 인구 이동을 진행한다. (while문)→ 완전탐색을 통해 격자 내의 모든 점에 대해 인구 이동이 가능한지 확인한다. (move 메소드) → 모든 점에 대해 4방향 탐색하며인접한 나라와 국경선이 열려있다면, 해당 나라에서 이동하며 연합한다. (BFS) - 이동 및 연합 가능한 나라는 방문한 적 없고, 두 나라 간 인구 수 차이가 L이상 R이하인 나라여야 한다. - 조건을 만족하는 인접..
📖 문제 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 a의 길이가 기니까 풍선 갯수(n)를 늘려가며 규칙성을 찾아보자.. - n이 1이면, 무조건 풍선이 하나 남으므로 1 반환 - n이 2면, 2가지(1번 풍선이 작고 2번 풍선이 큰 경우 / 1번 풍선이 크고 2번 풍선이 작은 경우)이므로 낮은 풍선 터트리는 기회를 사용하지 않고 2 반환 - n이 3이면, 가운데 풍선을 기준으로 4가지 경우의 수로 나눈다. ㄴ 가운데 풍선 기준, 왼쪽은 작고 오른쪽은 큰 경우 ㄴ 가운데 풍선 기준, 왼쪽은 크고 오른쪽은 작은 경우 ㄴ 가운데 풍선 기준, ..
📖 문제 5212번: 지구 온난화 첫째 줄에 지도의 크기 R과 C (1 ≤ R, C ≤ 10)가 주어진다. 다음 R개 줄에는 현재 지도가 주어진다. www.acmicpc.net 💡 풀이 방식 • 구현, 시뮬레이션 1. 원본 지도 origin과 값을 변경할 지도 map에 값을 입력받으면서, 큐에 땅(X)의 위치를 저장한다. (원본 지도 origin 따로 저장해두는 이유 : 나중에 땅 인근이 바다인지 아닌지 판단할 때 변경된 값으로 판단하면 안 되므로) 2. 모든 땅의 위치를 돌며, 인접한 3면 이상이 바다로 둘러싸였다면 잠기게 만들고, 잠기지 않았다면 현재 (행,열)의 값과 땅이 위치하는 최소/최대 행/열 인덱스를 비교해 갱신한다. 3. 2에서 구한 (최소 행 ~ 최대 행) (최소 열 ~ 최대 열)에 위치..
📖 문제 8911번: 거북이 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져 www.acmicpc.net 💡 풀이 방식 • 구현, 시뮬레이션 가장 멀리 위치한 두 점을 구하기 위해, 가장 작은 x와 y, 가장 큰 x와 y를 구한다. 그리고 Math.abs(maxX - maxY) * (minX - minY) 한 결과를 구해 출력한다. 🔺 코드 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 41 42 43 44 45 46..
📖 문제 14594번: 동방 프로젝트 (Small) 첫 번째 행동으로 1번과 2번 방이 합쳐져 (1, 2), (3), (4), (5) 상태가 된다. 이후 두 번째 행동으로 2, 3, 4번 방이 합쳐져 (1, 2, 3, 4), (5)의 상태가 된다. 따라서 남아있는 동방의 수는 2가 된다. www.acmicpc.net 💡 풀이 방식 • 구현, 시뮬레이션 필요 자료구조 - 1부터 N-1까지의 벽 상태를 나타낼 boolean형 배열 (true: 벽 허물어짐 / false: 벽 있음) 방이 N개면, 벽의 갯수는 N-1개다. (예 : O를 동방, |를 벽이라 할 때, O|O|O|O|O ⇒ 동방이 5개면, 벽은 동방-1개인 4개) 그러므로 1~N-1 까지의 벽의 상태를 나타내는 1차원 boolean형 배열을 사용한..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 구현 (배열) 총 2가지의 배열 (진입/진출 간선 수 저장용 배열)을 생성한다. 각 그래프 모양마다 진입 간선 수와 진출 간선 수에서 어떤 특징을 갖는지에 따라 갯수를 구한다. - 생성점 → 진입 간선 X / 진출 간선 수 >= 2 인 정점 - 막대 그래프 → 진입 간선 수 = 1 / 진출 간선 X 인 정점 - 8자 그래프 → 진입 간선 수 >= 2 / 진출 간선 수 >= 2 인 정점 - 도넛 → 막대와 8자 그래프를 제외한 나머지 💥 유의사항 🔺 코드 1 2 3 4 5 6 7 8 ..
📖 문제 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 💡 풀이 방식 • 구현, 시뮬레이션 1. d 방향으로 s만큼의 구슬을 제거한다. 2. 사라진 구슬들이 있으니 구슬들을 이동시킨다. 3. 4개 이상 이어지는 구슬이 있나 확인한다. 존재한다면, 구슬들을 제거하면서 sum에 더한다. 4. 구슬들이 사라지며 생긴 빈 공간을 메꾼다. 4개 이상 이어지는 구슬이 없을때까지 3-4과정을 반복한다. 5. 연속되는 번호의 구슬, 개수에 따라 판을 재배치한다. 💥 유의사항 개빡센 구현 ,,,,,,,, 🔺..
imname1am
'구현' 태그의 글 목록 (3 Page)