본문 바로가기

알고리즘 문제/프로그래머스21

[프로그래머스 - Java] 오픈 채팅방 (2019 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 아이디 값을 key로 HashMap을 사용해 아이디와 닉네임을 관리한다. 나는 LinkedList로 했는데 ArrayList든 뭐든 인덱스 없이 저장할 수 있는 자료구조를 이용해 들어오고, 나오고를 저장할 result를 만들어준다. Enter라면 아이디와 닉네임을 저장하고 result에 add Change라면 단순히 닉네임만 업데이트 Exit이라면 result에만 add.. 2021. 1. 11.
[프로그래머스 - Java] 후보키 (2019 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 1. 모든 후보키 조합 구하기 조합을 구하는 알고리즘을 이용해 모든 후보키가 될 수 있는 조합을 구했다. (백트래킹 이용해 구현함) 조합 포스팅 [Java] 조합 Combination 구해진 후보키 조합은 문자열 형태로 구해진다. 예를 들어 4개의 .. 2021. 1. 11.
[프로그래머스 - Java] 기둥과 보 설치 (2020 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 1. 기둥과 보를 저장하기 기둥과 보가 같은 (x, y) 좌표에 있을 수 있기에, 둘을 나누.. 2021. 1. 11.
[프로그래머스 - Java] 삼각 달팽이(월간 코드 챌린지 시즌1) 문제 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 설명 * Jungol 1337 달팽이 삼각형 문제랑 같다. 삼각형 그리는 방식이 살짝 다르지만 코드 챌린지 할 때도 뭔가 이거 규칙이 있는 거 같은데...? 하면서도 뭐지!!!!!! 이러다가 결국 달팽이 삼각형 문제의 정답을 보고 말았다ㅠ_ㅠ 근데도 뭔가 이해가 될락말락해서 정리를 해본다! n은 1 이상 1,000 이하입니다. n이 1일 때부터 6일때 까지의 삼각 달팽이를 만들.. 2020. 9. 22.
[프로그래머스 - Java] 두 개 뽑아서 더하기(월간 코드 챌린지 시즌1) 문제 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 programmers.co.kr 코드 import java.util.*; class Solution { public int[] solution(int[] numbers) { HashSet set = new HashSet(); // 중복 없게 하기 위해 Set 사용 for(int i = 0; i < numbers.length-1; i++) { for(int j = i+1; j < numbers.length; j++) { set.add(numbers[i] + numbers[j]); } } ArrayList list = new ArrayList(set); //Set을 문제가 원.. 2020. 9. 22.
[프로그래머스 - Java] [3차] 압축 (2018 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 설명 LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. 입력에서 처리되지 않은 다음 글자가 남아있다면(c), w+c에 해당하는 단어를 사전에 등록한다. 단계 2로 돌아간다. 1. 길이가 1인 모든 단어를 포함하도록 사전을 초.. 2020. 9. 12.
[프로그래머스 - Java] 점프와 순간 이동 문제 programmers.co.kr/learn/courses/30/lessons/12980?language=java 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈� programmers.co.kr 설명 건전지 사용량의 최솟값을 구하기 위해서는 건전지 소모가 되지 않는 순간이동을 많이 쓰고 점프를 최소화해야 한다! 예를 들어 n이 6일 때 6까지 최대한 순간이동을 해보자! 그러기 위해 6에서부터 0까지 Top-Down 방식으로 생각해보자 (0부터 6까지 Down-Top으로 생각한다면 머리 아프다... 복잡함. 6을 .. 2020. 9. 10.
[프로그래머스 - Java] 단어 변환 (DFS/BFS Level 3) 링크 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 설명 애초에 words에 target이 없다면 변환할 수가 없다. 그런 경우는 0을 반환하고 그 외의 경우에서 최단 과정을 찾는다. BFS를 통해 최단 과정을 찾는다. BFS를 위해 한 글자 차이나는 단어들을 인접해 있다고 생각하고 인접 리스트를 만든다. 예를들어 아래와 같은 값이 주어진다면 begin = "hit" words .. 2020. 5. 19.
[프로그래머스 - Java] 비밀지도(2018 KAKAO BLIND RECRUITMENT [1차]) 링크 https://programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 처음 코드 처음에 1차원적으로 생각한대로 구현했다. 너무 길고 불필요한 코드도 많다고 생각이 든다. 하나하나 사서 고생하는 느낌 *십진수 이진수로 변환할 때는 toBinaryString() 사용 class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; String[.. 2020. 5. 3.
[프로그래머스 - Java] 크레인 인형뽑기 게임(2019 카카오 개발자 겨울 인턴쉽) 링크 https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 코드 import java.util.*; class Solution { public int solution(int[][] board, int[] moves) { int[][] temp = board; int answer = 0; Stack st = new Stack(); for(int i = 0; i < moves.length; i++) { for(int j = 0; j < board.length;.. 2020. 4. 29.
반응형