일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 삼성 SW 기출문제
- Java
- 2020 카카오 공채
- 카카오 공채
- map
- CS 스터디
- 2019 KAKAO BLIND RECRUITMENT
- 2020 KAKAO BLIND RECRUITMENT
- 비트마스크
- 백준
- 프로그래머스
- Baekjoon
- 젠킨스
- 2019 카카오 공채
- set
- gcp
- 2018 카카오 공채
- 삼성 SW 역량테스트
- c++
- gradle
- 부스트코스
- 자바
- 알고리즘
- dfs
- 2018 카카오
- 카카오
- 2018 KAKAO BLIND RECRUITMENT
- 2018 KAKAO BLIND RECRUITMENT 1차
- bfs
- Today
- Total
목록Java (8)
아무코딩
오랜만에 티스토리 블로그에 글을 쓴 이유는 소스코드를 올렸을때 깃에서 에러가 나서 올렸습니다.. 나중에 원인을 찾으면 올릴예정입니다.😂 문제설명 길 찾기 게임 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되도록 구성한 후, 순회 방법을 ..
문제 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 최대가 될 것이다. N개의 단어가 주어졌을 때, 그 수의 합을 최대로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. ..
문제풀이 자바의 map사용법을 익히기 위해 풀어본 문제이다. map으로 푸는게 맞는지는 모르지만 나는 map을 사용하였다. 현재 스킬의 사용 가능 여부 -> map을 이용. 매번 map을 초기화 하여 스킬트리가 가능한지 체크한다. 그리고 매번 검사시 그다음 찍어야될 스킬을 따로 검사하여 해당 스킬이 나올시 map을 변경후 다음 스킬로 포인터를 옮긴다. 소스코드 더보기 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 import java.util...
문제풀이 java 의 경우에는 비트마스크를 이용해서 풀어보았고, c++의 경우에는 dfs를 사용해서 풀었다. 7달 전에 작성한 방법과 다른방법으로 풀어보고자 비트마스크를 사용해보았다. 문제 풀이 방법은 구역을 다 나누어보고(완탐), 그렇게 나누었을 때 조건이 성립하는지(연결이 되는 상태인지)를 체크해준다. 조건이 만족할시에는 최솟값 업데이트를 해준다. 소스코드 java 더보기 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ..
익명클래스란 무엇인가? 클래스의 선언과 객체의 생성을 동시에 하기 때문에 단 한번만 사용될 수 있고, 오직 하나의 객체만을 생성할 수 있는 일회용 클래스. 이름이 없기 때문에 생성자를 가질 수 없다. 단 하나의 클래스를 상속받거나 단 하나의 인터페이스만을 구현 할 수 잇다. 하나의 클래스로 상속받는 동시에 인터페이스를 구현하거나 둘 이상의 인터페이스를 구현할 수 없다. 생성자 다음에 중괄호 열고 닫고가 나오면, 해당 생성자 이름에 해당하는 클래스를 상속받는 이름없는 객체를 만든다는 것을 뜻한다. //추상클래스 Action public abstract class Action{ public abstract void exec(); } //추상클래스 Action을 상속받은 클래스 MyAction public c..
문제풀이 매우 복잡하게 푼거 같은느낌이 든 문제이다. 1. 탐색은 bfs를 사용하였고 bfs를 사용하여 계속 파이프를 따라간다. 2. 파이프가 이어져야 하는 곳에 파이프가 없을때('.' 일때) 3. 해당 위치에서 사방을 탐색하여 적절한 파이프를 기존에 저장해놓았던 map에서 반환한다. 모든 걸 넣어보고 문제없는지 확인하는 방법도 있겠지만 더 효율적으로 짜보고자 map을 활용하였다. 소스코드 더보기 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ..
문제풀이 카카오에 블록이동과 비슷한것 같지만 다른 문제입니다. 그때는 기준을 왼쪽 위(목적지와 상대적으로 가까운 지점)를 기준으로 잡았지만 이번에는 목적지와 상대적으로 가까운 지점을 기준으로 잡습니다. 그리고 현재 방향, 다음 방향을 모두 고려하여 불가능한 케이스를 제거해주고, 다음 위치의 벽유무, 범위 체크등을 해주며 dfs를 진행해 주면 되는 문제입니다. 소스코드 더보기 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 6..
문제풀이 c++로만 풀다가 첨으로 java로 푼 문제이다. 가장 긴 오름차순 수열을 찾는 LIS문제와 동일하다. 마지막 인덱스 접근을 위해 초기에 0을 넣어두고 사용한다. 마지막 인덱스를 size-1로 접근하는데 없으면 에러뜨기때문.. 마지막보다 큰값이 들어오면 뒤에 삽입. 작거나 같은값이 들어오면 lower_bound값을 찾아 그값과 변경한다. 소스코드 더보기 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 import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Baekjoon..