1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42895?language=java 코딩테스트 연습 - N으로 표현 programmers.co.kr 2. 풀이 재귀함수를 이용한 DP를 통해 풀이한다. 재귀함수의 매개변수로 지금까지 쓰인 숫자의 수, 현재까지의 계산 결과를 넣는다. for문을 통해 숫자의 갯수를 가능한 범위까지 늘려가며 +,-,/,* 연산을 한다. 최솟값이 8보다 크면 -을 return 한다. 3. 코드 class Solution { int answer = 9; public void dp(int N, int number, int count, int currentNumber){ if(count > 8) { return; } if(curre..
1. 문제 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 2. 풀이 BFS를 통해 상어의 위치를 이동해가며, 먹을 수 있는 물고기 중 가장 작은 거리를 선택하고 더이상 먹을 수 없는 물고기가 없을 때까지 이 과정을 반복해 답을 구한다. 전체적인 풀이 과정은 아래와 같다. 상어의 위치를 저장하고, 상어의 위치에서부터 탐색을 시작한다. 상어의 위치에서 BFS를 해 상어의 위치를 이동시킨다. 상어가 갈 수 있는 경우는 (1) 상어의 크기보다..
1. 문제 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 2. 풀이 백트래킹을 이용해 풀이한다. 백트래킹을 통해 치킨집을 하나씩 선택하며 총 m개의 치킨집을 선택한다.(backTracking()) 백트래킹을 하기 위해, 방문여부를 나타내는 boolean[] visited을 사용한다. m개의 치킨집을 고른 경우, 도시의 치킨 거리를 구한다(getChickenDist()). 최소 도시의 치킨 거리를 구한다.(Math.min(..
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..
- Total
- Today
- Yesterday
- 블루투스
- the pads
- hackerrank
- c++
- 집배원 한상덕
- 구슬 탈출2
- 아두이노
- 라즈비안
- 스티커모으기2
- DP
- 11503
- hc-06
- git
- 자바
- 합승 택시 요금
- 프로그래머스
- 2981
- dht11
- 백준
- mysql
- ESP8266
- BFS
- 라즈베리파이
- 메일서버
- 워드프레스
- FTP
- java
- dovecot
- 키 순서
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |