프로그래머스 11

[프로그래머스 Level2] 거리두기 확인하기(JAVA) - 2021 카카오 인턴

문제 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 해당 문제의 내용이 길어 생략했습니다. 문제풀이 해당 그림이 제일 큰 힌트를 주었습니..

프로그래머스 2022.04.19

[프로그래머스 Level3] 여행경로 (JAVA)

[문제] https://programmers.co.kr/learn/courses/30/lessons/43164?language=java 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr [문제 풀기 전] 갈수있는 모든 경로를 탐색하여 알파벳 순서가 앞서는 경로를 반환하면 정답이 되는 문제입니다. 경로가 선택되는 순서에 따라 답이 달라지므로 순열을 사용하여 모든 경우를 만들어 보면 됩니다. 문자열을 다루어야 하는 점에서 어려워 힌트를 봤지만 풀고나니 좋은 문제다 라고 느낀 문제였..

프로그래머스 2022.04.08

[프로그래머스 Level1] 숫자 문자열과 영단어(JAVA) - 2021 Kakao

https://programmers.co.kr/learn/courses/30/lessons/81301?language=java 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr [문제 풀이] 입력으로 영단어 숫자와, 숫자가 주어졌을때 결과값을 숫자로 바꿔서 return 하도록 구현을 하면 되는 문제입니다. 바꾼다는 점에서 replaceAll 을 떠올렸고, 0 ~ 9 까지의 수를 변환하면 되기 때문에 주어진 영단어 10개를 배열로 만들고 for문을 진행을 하여 해당 단어를 해당 배열의 번호로 바꿔주면 ..

프로그래머스 2022.03.13

[프로그래머스 Level2] 괄호 변환 (JAVA) - 2020 Kakao

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/60058?language=java 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr [문제 풀기 전] 이 문제에 처음 접근할 때 2번 u, v 를 나누는 처리와 재귀의 처리가 좀 까다로웠다. 재귀는 그냥 진짜 문제에서 하라는대로 반환(return) 하면 되는 것이였고.. u,v 를 나눌 때 따로 ' ( ' 와 ' ) ' 개수가 같아질 때는 생각했는데 문자열을 나누고 만드는 부분이 미숙하였다. 카카오 문제..

프로그래머스 2022.02.06

[프로그래머스 Level2] 문자열 압축 (JAVA) - 2020 Kakao

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr [문제 풀이] 문자열을 압축해서 가장 문자열의 길이가 작은 것을 return 하도록 문제를 풀어야합니다. s의 길이는 1이상 1,000 이하이고 가장 길이가 작은 것을 구하므로 문자열의 압축방식을 1부터 진행하여 결과값을 비교하면 됩니다. 여기서 문자열을 압축할때 전체 문자열의 반이상이 넘어가면 압축을 하지 못하므로 문자열의 반까지만 압..

프로그래머스 2022.02.01

[프로그래머스 Level3] - 디스크 컨트롤러 (JAVA)

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/42627?language=java 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr [문제 풀이] 이 문제는 '우선순위 큐' 로 해결 할 수 있는 문제입니다. 현재 작업이 종료되기 전에 들어온 요청들을 작업의 소요시간이 짧은 순서대로 나열해야하기 때문입니다. 근데 이 문제에서는 작업이 요청되는 시점과 작업의 소요시간으로 주어집니다. 문제에서는 [0,3] [1,9] [2,6] 으로 요청되는 시점 순..

프로그래머스 2022.01.17

[프로그래머스 Level2] 더 맵게 (JAVA)

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/42626?language=java 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr [문제 풀이] 이 문제의 핵심은 '우선순위 큐' 입니다. 우선순위 큐는 아직 포스팅을 안해서 간단하게 설명하면 보통의 큐처럼 동작하지만 '우선순위' 속성을 갖습니다. 새 요소에 우선순위를 부여해서 큐에 삽입하고 가장 높은 우선순위를 갖는 요소부터 빠져나오도록 합니다. 그래서 이문제는 왜 우선순위 큐를 사용하..

프로그래머스 2022.01.12

[프로그래머스 Level2] 오픈채팅방 (JAVA) - 2019 Kakao

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/42888?language=java 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr [문제 풀이] StringTokenizer , HashMap, List 를 사용하여 풀 수 있습니다. -record에 있는 각 단어는 공백으로 구분되기 때문에 StringTokenizer를 활용하여 값을 토큰화 하여 사용한다. -HashMap 에 아이디(key)와 닉네임(value) 로 저장을 하게 되는데 key 값은 ..

프로그래머스 2022.01.11

[프로그래머스 Level2] 소수 찾기 (JAVA)

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/42839?language=java 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr [문제 풀이] 이 문제는 소수를 판단하는 함수와 dfs방식으로 찾는 함수를 만들어서 구현을 해준다. dfs함수를 구현할때 String 값을 Integer값으로 변경하여 찾을 수 있는 값 전부를 중복없이 리스트에 담아주고 리스트에 담긴 값들을 소수판단하여 세주면 된다. 백트래킹 방법 사용 for문을 사용해 ..

프로그래머스 2022.01.04