본문 바로가기

알고리즘

(80)
[백준] 인내의 도미노 장인 호석 20165 [ JAVA ] | Link www.acmicpc.net/problem/20165 20165번: 인내의 도미노 장인 호석 사람을 화나게 하는 법은 다양하다. 그 중에서도 악질은 바로 열심히 세워놓은 도미노를 넘어뜨리는 것이다. 이번에 출시된 보드 게임인 "너 죽고 나 살자 게임"은 바로 이 점을 이용해서 2명이 www.acmicpc.net | 풀이 시뮬레이션 문제인 것 같다. 그냥 하라는 대로 했다. | 어려웠던 점 1. 세워져 있는 경우와 누워져 있는 경우를 나누지 못했다. 2. 해결 | 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; ..
[삼성 SW Expert Academy] 점심 식사시간 2383 [Java] | Problem ※ SW Expert Academy는 문제의 무단 복제를 금지하고 있기 때문에, 기재하지 못한 점 양해 부탁드립니다. | Link ※ 하단의 Link를 클릭해도, 로그인 후 열람이 가능합니다. swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com | 풀이 최대 10명의 사람이 최대 2 종류의 계단으로 이동할 경우, 최소 시간을 출력해야 한다. 따라서, 10명의 사람이..
[삼성 SW Expert Academy] 8275. 햄스터 [JAVA] | Problem ※ SW Expert Academy는 문제의 무단 복제를 금지하고 있기 때문에, 기재하지 못한 점 양해 부탁드립니다. | Link ※ 하단의 Link를 클릭해도, 로그인 후 열람이 가능합니다. swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWxQ310aOlQDFAWL | 풀이 Step : 까다로운 조건을 보고, 완탐을 해야겠다고 느꼈다. Step : 시간복잡도 체크 했다. 4. 따라서, 0번 우리부터 쭉 들어가면서 중복순열 ? / DFS 방식 5. 각 조건 체크하고 6. 총 햄스터 수가 가장 큰 거 위주로 정렬하고 ( MAX ) 7. 가장 큰 햄스터의 수가 같을 경우, 오름차순 정렬 된 것을 답으로 한다. |..
[프로그래머스] 섬 연결하기 level-3 [JAVA] 출처 : programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 풀이 1. 크루스칼 알고리즘 2. 우선순위 큐 사용 코드 import java.util.*; class Solution { public static class Island implements Comparable{ int from ; int to; int weight; public Island(int from, int to, int weight){ this.from = from; this.to = to; this.weight = weight; } public int ..
[프로그래머스] 단어 변환 level3 [JAVA] 출처 : hj-bank.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F TISTORY 나를 표현하는 블로그를 만들어보세요. www.tistory.com 풀이 1. dfs 사용 ( words의 길이가 최개 50이므로 O(n^2) = 2500 이므로 ㄱㅊ 2. begin 으로부터 words를 모두 참조하며 한 알파벳 변경으로 가능한지 체크 3. 가능한 곳을 모두 들어가보며 바뀐 문자열이 target과 같은지 체크하자. 4. 모두 검사했는데 아니라면 visited= false 통해서 완전 탐색 실시 5. 그 중 count값이 가장 작은거 출력 코드 import java.util.*; class Solution { static boole..
[프로그래머스] 구멍보트 Level 2 [JAVA] 출처 : programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 풀이 1. 최대 2명 씩 밖에 탈 수 없다는게 큰 주의사항이다. 2. 정렬 후 , 몸무게가 가장 적은 사람과 가장 큰 사람을 태우려고 해야한다. 3. 작은 사람 2명 태우고 무게 남으면 아까우니까! 4. 조건에서 R>Lindex 로 해서 틀렸는데, R >= Lindex 로 수정해야 했다. 5. 중간에 겹치는 사람은 어차피 태워야 하니까, 계..
[프로그래머스] 더 맵게 [java] 출처 : programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 1. 우선순위 큐 코드 import java.util.*; class Solution { static PriorityQueue pq ; public static class Idx implements Comparable { int number; public Idx(int number){ this.number = number; } @Override pu..
[프로그래머스] 가장 큰 수 [JAVA] 출처 : programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 알게된 점 1. 정수형 -> 문자열로 바꾸는 법 1-1) String.valueOf( 정수 ) 1-2) Integer.toString( 정수 ) 2. 문자열 크기 비교하기 1-1) "3".compareTo("30") - 사전 순으로 작으면 -1 , 같으면 0 , 크면 1 return; - 3 < 30 으..