1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 DP를 이용해 문제를 풀이한다. DP[N]이 N에 해당하는 거스름돈을 구하는 방법의 갯수를 의미한다면. DP[N]은 DP[N-화폐 종류 1] + DP[N-화폐 종류 2] + DP[N-화폐 종류 3]....이라고 생각할 수 있다, 위 내용을 for문을 사용해 구현하면 아래의 코드와 같다. 이 때, 화폐 하나로만 거스름돈을 채울 수 있는 경우를 포함하기 위해 DP[0] = 1로 ..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12971?language=java# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 스티커 판이 원형이므로 sticker[0]을 선택할 경우 sticker[n-1](n은 길이) 값을 선택할 수 없으며, sticker[n-1]을 선택할 경우 sticker[0]을 선택할 수 없다 따라서, sticker[0]을 선택하는 경우와 그렇지 않은 경우로 나눠 DP를 계산한다. 기본적으로 현재 위치에서 두 경우 중 유리한 값을 선택한다. 현재 위..

1. 문제 https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 2. 풀이 DP를 사용해서 풀이한다. 2X1, 1X2 타일을 이용해 채우므로, 3XN에서 N이 홀수일 경우 타일로 채워질 수 없다. 자바 배열에서는 배열 선언시 0으로 초기화 되므로 별도로 값을 초기화해주지 않아도 된다. 경우를 2가지로 나누어서 생각한다. 3X2를 채울 수 있는 경우는 3개이다. N-2개의 타일을 채운 경우 뒤에 2X1을 채워넣는다고 생각하면, DP[N] += DP[N-2] * 3이다. 4X2, 6X2, 8X2.... 4 이후 2의 배수마다 2가지 방법으로 칸을 채울 수 있는 방..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12981?language=java 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 2. 풀이 끝말잇기에 사용된 단어들을 리스트에 저..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42888?language=java 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 2. 풀이 입력 받은 명령의 내용(입장, 퇴장)을 유저의 아이디와 함께 저장한다. 아이디와 이름을 해시맵에 저장한다. 아이디 변경을 반복하게 되는 경우 뒤에 들어온 value가 덮여 저장된다. 입력을 모두 받은 후, replace를 사용해서 유저의 아이디를 이름으로 교체한다. 3. 코드 import java.util.*; cl..
1. 문제 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 2. 풀이 DP를 이용해 풀이한다. 2차원 배열로 DP를 진행한다. 첫번째 인덱스는 무게를 의미한다. dp[k][n]일 경우, k 무게 만큼 버티고 있을 때다. 두번째 인덱스는 물품의 인덱스를 의미한다. dp[k][n]일 경우, n번째 물건까지를 고려했을 때다. 즉, DP 배열에 저장되는 값은 인덱스에 해당하는 물건들의 ..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/81301?language=java 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 2. 풀이 특정 문자열을 원하는 문자열로 치환해주는 replaceAll 함수를 사용한다. public String replace(CharSequence target, CharSequence replacement) public String replaceAll(String regex, String replacement)..
1. 문제 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 2. 풀이 카드 묶음의 합이 가장 작기 위해선, 가장 적은 카드 합(또는 카드)를 2개를 계속해서 합하는 것이다. 즉, 오름차순 정렬된 우선순위 큐를 사용해 가장 작은 카드 합을 2개 빼내고 이 두 카드의 합을 구한 후 구한 합을 다시 우선순위 큐에 넣으면 가장 적은 카드 합을 구할 수 있다. 3. 코드 import java.util.*; import java.io.*; ..
1. 문제 https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 2. 풀이 상어의 위치를 DFS를 이용해 움직인다. 상어와 물고기를 각각 객체를 만들어 사용한다. 물고기(Fish)는 좌표, 물고기 번호, 방향, 살아있는지 여부를 멤버 변수로 갖는다. 상어(Shark)는 좌표, 방향, 먹은 물고기 번호의 합을 멤버 변수로 갖는다. 물고기 번호를 입력 받고, 탐색을 시작하기전, 물고기를 번호 순서대로 먹기 위해 물고기가 담긴 list를..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/43163?language=java 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 2. 풀이 가장 짧은 변환 과정을 찾으므로 BFS를 사용해 풀이한다. 두 개의 단어가 주어졌을 때, 하나의 단어를 다른 단어로 변환할 수 있는지(다른 알파벳의 갯수가 1개인지)를 판별하는 함수 isChangeOk()를 구현한다. 처음 시작하는 단어인 begin와 단어 후보들(words..
- Total
- Today
- Yesterday
- 메일서버
- 2981
- 합승 택시 요금
- git
- FTP
- BFS
- 11503
- dht11
- hackerrank
- 자바
- c++
- 라즈비안
- 프로그래머스
- ESP8266
- 워드프레스
- java
- 리눅스
- DP
- dovecot
- 구슬 탈출2
- 스티커모으기2
- the pads
- hc-06
- 아두이노
- 백준
- mysql
- 라즈베리파이
- 집배원 한상덕
- 블루투스
- 키 순서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |