구현

📖 문제 https://www.acmicpc.net/problem/2567  💡  풀이 방식• 구현1. 색종이 수를 입력받는다.2. 입력받은 색종이 위치의 행과 열에서 10 더한 부분(=정사각형 부분)까지를 1로 채운다.3. 흰색 도화지를 돌면서 현재 부분이 색종이가 붙은 부분(=1)이라면, 해당 지점에서 4방향을 탐색하며 격자 범위 내에 있고 주변이 0인 칸이거나, 격자 범위를 벗어난 값이라면 검은색 영역 부분으로 인식한다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import java.util.*;import java.io.*; public class Main..
📖 문제 https://www.acmicpc.net/problem/16967   💡  풀이 방식• 구현배열을 그려봤을 때 겹치는 부분과 안 겹치는 곳의 패턴을 파악하는 것이 핵심이다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import java.util.*;import java.io.*; public class Main {    public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..
📖 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   💡  풀이 방식• 브루트포스 (구현)1. lock의 범위를 확장하고, 확장한 배열에  lock에 대한 정보를 입력한다.   - Why? 키의 일부가 자물쇠 영역을 벗어나더라도, 키로 자물쇠를 열 수 있으면 정답이 되기 때문.  - 그러므로 lock과 key가 겹칠 수 있는 모든 경우를 계산할 수 있을만큼 확장해야 한다.  - 🔔 key의 크기와 lock의 크기가 항상 같진 않다!   - 열쇠 이동거리 = 열쇠와 자물쇠가 처음 겹치는 부분 + 자물쇠의 크기     ⇒ 확장한 배열 : 자물쇠 크기..
📖 문제 https://www.acmicpc.net/problem/20006   💡  풀이 방식• 구현, 시뮬레이션필요 자료구조- 플레이어 레벨, 이름, 방에 들어갔는지 여부 저장하는 Player 객체- 플레이어 정보 저장용 배열  . p개의 플레이어 정보를 입력받을 Player 배열을 생성한다. . p개의 플레이어 정보를 입력받는다. . 현재 i번째 플레이어가 이미 방에 배치된 플레이어가 아니고, 레벨 차이가 10 이하라면, 방에 추가한다. . 이름 순으로 정렬한 후 출려갛기 위해 플레이어 이름으로 정렬한다. . 방의 정원이 모두 찬 경우, 게임을 시작한다. / 그게 아니라면 대기를 출력한다. . 현재 i번쨰 방에 있는 플레이어 정보를 모두 출력한다.  🔺 코드12345678910111213141..
📖 문제 https://www.acmicpc.net/problem/9017   💡  풀이 방식• 구현필요 자료구조- 등수 저장용 int형 배열 (ranks)- 각 팀별 인원 수 저장용 Map (cntMap)- 가장 큰 숫자의 팀 번호 저장용 int형 변수- 해당 팀의 5번째 선수 저장용 배열 (fifth)-  팀 별 최종 점수 저장용 Map (scoreMap)-  6명 이상인 팀 별로 몇 명 있는지 저장용 Map (tmpMap)- 가장 낮은 점수 저장용 int형 변수 (result)- 5번째 점수 저장용 int형 변수 (fifthScore) . N개의 등수를 입력받는다.    - ranks 배열에 저장한다.    - 각 팀 별 팀원 수를 cntMap에 저장한다.    - 가장 큰 번호의 팀 teamN..
📖 문제 https://www.acmicpc.net/problem/16960   💡  풀이 방식• 구현필요 자료구조- 램프 갯수 저장용, 크기가 M+1인 int형 배열- 램프 정보 저장 리스트 배열 1. 각 스위치에 몰린 램프 정보를 저장한다.for(int i = 1 ; i 0) { int tmp = Integer.parseInt(st.nextToken()); list[i].add(tmp); arr[tmp]++; }}   2. 스위치 수만큼 반복문을 돌면서, 각각의 스위치에 몰린 램프의 idx 값을 배열에서 하나씩 빼본다.그러면서 유지가 되는지/아닌지 flag 변수로 판단한다.boolean flag = true; // 하나씩 빼면서 유지되는지 ..
📖 문제 https://www.acmicpc.net/problem/3029   💡  풀이 방식• 문자열1. 첫째 줄에 입력받은 현재 시간을 세미콜론(:) 단위로 분리한다.2. 둘째 줄에 입력받은 나트륨 던질 시간을 세미콜론(:) 단위로 분리한다.3. 둘째 줄에서 입력받은 (시간-분-초)를 첫째 줄에서 입력받은 (시간-분-초)로 빼는 연산을 수행한다.4. 연산 후, 정인이가 기다려야 하는 시간을 출력해야 할 때 시간/분/초 중 한 자리 수의 경우, 앞에 0을 붙여 출력하도록 한다. (두 자릿수면 그냥 출력한다.)   💥 유의사항정인이는 적어도 1초를 기다린다고 했으므로,1과 2에서 입력받은 시간이 같은 경우, 24:00:00이 나오도록 처리해 줘야 한다.   🔺 코드123456789101112131..
📖 문제 https://www.acmicpc.net/problem/20125   💡  풀이 방식• 구현- 심장 : 본인의 위치 포함 본인을 둘러싼 상하좌우가 모두 쿠키(*)일 때 심장이다.- 허리 : 심장 위치를 기준으로 아래쪽(행 방향+1)으로 계속 쿠키인 부분- 왼팔 : 심장부터 왼쪽(열-1)으로 뻗어나간 부분- 오른팔  : 심장부터 오른쪽(열+1)으로 뻗어나간 부분- 왼다리 : 허리 왼쪽 아래쪽부터 아래쪽(행+1)으로 뻗어나간 부분- 오른다리 : 허리 오른쪽 아래쪽부터 아래쪽(행+1)으로 뻗어나간 부분   🔺 코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555..
📖 문제 https://www.acmicpc.net/problem/10431   💡  풀이 방식• 시뮬레이션1. TC 번호와 20개의 숫자를 입력받는다.2. 각 학생들에 대해 본인 앞에 있는 본인보다 키 큰 사람 수를 구한다. ⇒ 시간 복잡도 : O(TC * N^2) 🔺 코드123456789101112131415161718192021222324252627282930313233343536import java.util.*;import java.io.*; public class Main {    static int T, P;        public static void main(String[] args) throws IOException {        BufferedReader br = new Buf..
imname1am
'구현' 태그의 글 목록