💡Problem Solving/Programmers 72

[프로그래머스] 튜플 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr #풀이 각 Set의 Element 수로 오름차순 정렬하고 HashSet을 통해 Element 중복 체크를 하며, 중복되지 않는 Element를 차례대로 넣는다. #소스코드 import java.util.*; class Solution { public int[] solution(String s) { int..

[프로그래머스] 배달 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr #풀이 다익스트라 알고리즘을 사용하면 풀 수 있다. #소스코드 import java.util.*; // 노드의 연결된 노드와 거리를 가짐 class Edge { int to; int distance; public Edge(int to, int distance){ this.to = to; this.distance = distance..

[프로그래머스] 다리를 지나가는 트럭 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr #풀이 Queue 자료 구조를 사용하였고 Bridge, Truck을 클래스로 구현하였다. 다리 위에 트럭이 모두 빠져나갈때까지 시간을 1초씩 증가시키며 진입 조건, 진출 조건을 체크하여 트럭을 진입 / 진출 시킨다. #소스코드 import java.util.*; class Bridge{ Queue que; int totalWei..

[프로그래머스] 영어 끝말잇기 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 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 #풀이 단어 배열을 순회하면서 1) 현재 단어가 이미 사용된 단어인지 체크한다..

[프로그래머스] 짝지어 제거하기 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는..

[프로그래머스] 124 나라의 숫자 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/12899# 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr #소스코드 class Solution { public String solution(int n) { StringBuilder sb = new StringBuilder(); while(n != 0){ int nmg = n%3; n = n/3; if(nmg == 0){ sb.insert(0, 4); n--; } else { sb.insert(0, nmg); } } return sb.toString(); } } sb.insert() 함수로 지정된 Index에 문자열을 삽입할 수 있습니다.

[프로그래머스] 다음 큰 숫자 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr #소스코드 class Solution { public int solution(int n) { int oneCnt = getOneCnt(Integer.toBinaryString(n)); int next = n+1; while(true){ if(getOneCnt(Integer.toBinaryString(next)) == one..

[프로그래머스] 파일명 정렬 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr #소스코드 import java.util.*; import java.util.regex.*; class File implements Comparable{ String name; String head; int number; String tail; public File(String name){ this.name = name; divide(); } ..

[프로그래머스] 스킬트리 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr #소스코드 import java.util.*; class Solution { public HashMap priors; public int solution(String skill, String[] skill_trees) { int answer = 0; priors = new HashMap(); for(int i = 0; i < skill.length(); i++){ priors.put(skill.charAt(i), i); } for(String s : skill_trees){ int prior = 0; boolean possible = t..

[프로그래머스] 올바른 괄호 (Java)

#문제 https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr #소스코드 import java.util.Stack; class Solution { boolean solution(String s) { boolean answer = true; Stack st = new Stack(); for(int i = 0; i < s.length(); i++){ char elem = s...