1. 문제 https://programmers.co.kr/learn/courses/30/lessons/1829?language=java 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 2. 풀이 picture을 돌아다니면서, 방문하지 않은 색깔 영역(picture[i][j] != 0)이 나오면 DFS로 해당 색깔의 영역 크기를 구한다. 영역의 크기를 구할 때마다, 크기를 비교해 그 중 가장 큰 값을 구한다. 3. 코드 import java.util.*; class Solution { // 현재 위치(r,c)가 ..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/17677?language=java 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 2. 풀이 문자열1과 문자열2의 다중집합을 구한다. 다중집합 1과 다중집합 2의 교집합을 구한다. 다중집합 1과 다중집합 2의 원소가 겹치면, 다중집합 2에서 원소를 삭제하고 교집합에 추가한다. 다중집합 1의 원소는 모두 합집합에 추가한다. 다중집합 1과 다중집합 2의 합집합을 구한다. 다중집합 2의 남은..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/60058?language=java# 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 2. 풀이 재귀적으로 과정을 반복해야하므로, 과정 자체를 별도의 함수(solve)에서 수행한다. 균형 잡힌 문자열을 확인하는 함수인 isBalanced, 올바른 문자열을 확인하는 함수인 isRight를 구현한다. 나머지는 문제의 조건에 맞게 구현한다. 3. 코드 import java.util.*; class Solution {..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/17679?language=java 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 2. 풀이 한번 블록을 POP하는 과정을 구하고, 더이상 POP되는 블록이 없을때까지 그 과정을 반복한다. 이를 위해 3가지 함수르 나눠서 일을 처리한다. checkBlock(): 지울 블록을 선택해 체크하고 삭제 표시를 한다. 삭제할 블록이 겹칠수 있으므로, 체크를 전부 다 한후에 삭제 표시를 한다. ..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/17684?language=java# 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 2. 코드 import java.util.*; class Solution { // 알파벳 사전 초기화 public static void initDic(HashMap hm){ for(int i = 0; i < 26; i++){ hm.put(Character.toString('A' + i), i+1); } } public int[] solution(S..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/17687?language=java 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 2. 풀이 구해야할 숫자의 번호까지 진법에 맞게 변환해 저장한 후, 튜브에 해당하는 순서(p)에 맞는 값만을 더해 값을 구한다 3. 코드 class Solution { public String solution(int n, int t, int m, int p) { String str = "0"; int cnt =..
1. 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 2. 풀이 오른쪽에서 레이저를 쏘기 때문에 오른쪽으로 시작 할 수 있지만, 그렇게 하면 최악의 경우 N!의 복잡도가 발생할 수 있다. 따라서, stack을 활용해 오른쪽부터 계산한다. 풀이 과정은 아래와 같다. 탑의 위치와 높이를 스택에 모두 저장하기 위해 별도의 클래스를 만든다. 탑의 왼쪽부터 시작한다. while문을 이용해 stack에 있는 탑들을 돌아보며, 현재의 탑 높이가 스택..
1. 문제 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 2. 풀이 BFS로 풀이했다 (1) n층을 최소한의 버튼을 눌러 도착했을 때의 버튼 누른 횟수를 저장하는 배열(minBtn)을 사용해 정답을 구하고, 중복을 체크하는데 사용한다. (2) 위의 최소 버튼 누른 횟수를 저장하는 배열(minBtn)에서 시작점의 버튼 누른 횟수를 0이 아닌 1로 처리해, 시작점과 처음 도착한 층의 차이점을 만들어 처리한다. (3) 맨 마지막 정답을 처리할때, +1 한 값을..
1. 문제 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 2. 풀이 BFS를 써서 풀이한다. 처음에는 큐에서 poll 했을때 촌수를 높이는 걸로 처리를 했는데, 그렇게 하면 연결되지 않는(?), 결과에 상관없는 촌수를 계산할 때까지 더하기 처리가 나서 실패했다. 그래서 기준점을 잡아서, 기준점과의 촌수를 계산하는 배열을 따로 만들어 처리했다. 3. 코드 import java.util.Arrays; import java.ut..
- Total
- Today
- Yesterday
- 라즈베리파이
- 자바
- 워드프레스
- hc-06
- FTP
- 메일서버
- ESP8266
- 백준
- 집배원 한상덕
- 리눅스
- dovecot
- 아두이노
- 구슬 탈출2
- 블루투스
- 키 순서
- git
- 합승 택시 요금
- the pads
- c++
- mysql
- 스티커모으기2
- dht11
- 11503
- hackerrank
- 라즈비안
- java
- BFS
- 프로그래머스
- 2981
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |