구현

📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 구현 1. 방문 배열과 상하좌우 배열 선언 - 3차원 방문 배열 : (행, 열, 빛을 쏜 방향) 저장 - 상하좌우 배열 : [아래, 왼쪽, 위, 오른쪽] 순서로 저장 (방향 전환 쉽게 하기 위해) 2. 좌회전과 우회전 d = (d+3) % 4;// 좌회전 d = (d+1) % 4;// 우회전 3. 빛 쏘고 다음에 도착하는 점에 대한 행과 열 재할당 i = (i + dx[d] + r) % r;// 행 j = (j + dy[d] + c) % c;// 열 💥 유의사항 어느 곳에서 빛을 쏘..
📖 문제 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 💡 풀이 방식 • 구현 1,2번 연산 - 임시 배열에 [상하/좌우] 반전시킨 값을 저장하고, 그 배열의 값을 원본 배열로 복사해 저장한다. 3,4번 연산 - [열의 크기][행의 크기]를 갖는 2차원 임시 배열을 생성해 [오른쪽/왼쪽]으로 90도 회전시킨 값을 저장하고, 그 배열의 값을 원본 배열로 복사해 저장한다. 5번 연산 1. 원본 배열을 4등분한 구역에서 각각 임시 배열에 ..
📖 문제 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 💡 풀이 방식 • 구현 (그리디) 키가 큰 순으로 입력받은 키대로 ArrayList에 삽입한다. 이 때, .add(int idx, E e)를 활용한다. 예제1을 살펴보자. 키가 4인 사람이 0일 때, 리스트의 0번째에 4를 삽입한다. → list.add(4, 0) / list : [4] 키가 3인 사람이 1일 때, 리스트의 1번째에 3을 삽입한다. → list.add(3, 1) / list : [4,3] 키가 2인 사람이 1일 때, 리스트의 1번..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 구현, 재귀 문제에서 말한 순서대로 구현하면 된다.. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. → int형 변수 open의 값을 통해 분리한다. 여는 괄호를 만나면 갯수+1, 닫는 괄호를 만나면 갯수 -1한다. 이 때 여는 괄호 수 = 닫는 괄호 수인 경우, "균형잡힌 괄호 문자열"이므로 현재..
📖 문제 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 💡 풀이 방식 • 시뮬레이션 1. 집 정보를 입력받으면서, 공기청정기 위치 cleaner도 함께 입력받는다. 2. T초 동안 아래 과정을 반복한다. → 1) 미세먼지 위치와 미세먼지 양을 확인해 큐에 저장한다. (❌ 미세먼지 위치만 저장❌ 나중에 격자에서 해당 칸 값 map[i][j] 받아와서 기존 배열을 바로 수정하게 되면 틀린다.) → 2) 모든 미세먼지가 있는 칸을 돌며 먼지를 확산시킨다. 이 때, 확산될 먼지가 없다면 = 해당 칸의 값이 5보다 ..
📖 문제 9081번: 단어 맞추기 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알 www.acmicpc.net 💡 풀이 방식 • 구현 1. 단어 맨 뒤에서부터 확인하며 처음으로 감소하는 부분의 인덱스를 찾는다. (idx1) 2. 다시 맨 뒤에서부터 확인하며 감소하는 부분보다 큰 부분의 인덱스를 찾는다. (idx2) 3. idx1과 idx2에 있는 두 값을 swap한다. 4. 단어의 idx1 위치부터 끝까지 단어를 오름차순 정렬한다. 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 시뮬레이션 1. 정사각형인 부분을 찾아 정사각형인 부분이 존재한다면, 집합(Set)에 해당 좌표들을 저장한다. (findSquares()) 2. 정사각형 위치 집합을 돌며 해당 위치의 블록들을 제거한다. (= '.'으로 변경) 3. 중력을 적용시킨다. private static void dropBlocks() { // 1. 2차원 임시 배열 생성해 모두 빈 칸(.)으로 초기화하기 char[][] tmpGrid = new char[m][n]; for(int i = 0 ; i < m ;..
📖 문제 2174번: 로봇 시뮬레이션 첫째 줄에 두 정수 A, B가 주어진다. 다음 줄에는 두 정수 N, M이 주어진다. 다음 N개의 줄에는 각 로봇의 초기 위치(x, y좌표 순) 및 방향이 주어진다. 다음 M개의 줄에는 각 명령이 명령을 내리는 순 www.acmicpc.net 💡 풀이 방식 • 시뮬레이션 1. x좌표, y좌표를 입력받아 2차원 배열에서는 거꾸로 [y좌표][x좌표] 위치에 로봇 위치를 기록하고, 각 로봇의 위치와 방향은 로봇 객체 배열에 저장한다. 2. (명령 내리는 로봇, 명령 종류, 명령 반복 횟수)를 입력받아 명령을 수행한다. - 명령 종류가 L이거나 R인 경우, 입력받은 명령 반복 횟수만큼 방향을 전환해준다. private static int getDir(int dir, char ..
📖 문제 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 💡 풀이 방식 • 브루트포스 - 123 이상 987 이하의 숫자들 중에 대해 중복되는 경우와 0이 들어간 경우를 제외하고 반복문을 돌려 조건을 만족하는 숫자를 찾는다. 💥 유의사항 제한사항 : 중복숫자가 들어있거나, 0이 들어있는 경우 🔺 코드 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 4..
imname1am
'구현' 태그의 글 목록 (5 Page)