자바 28

[프로그래머스] 모음 사전_자바

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제가 완전탐색 카테고리에 들어가 있어서 처음에는 DFS로 풀었다. 답은 맞았지만 효율적이지 못하다는 생각이 들어 더 찾아봤다. 규칙을 찾아 조금 더 수학적으로 접근하는 방법이 있었다. 규칙을 통해 2번째, 1번째 문자는 몇 번만에 바뀌는지 알 수 있다. 5번째 문자 바뀔 때 = 1 4번째 문자 바뀔 때 = 1 + 5^1 = 6 3번째 문자 바뀔 때 = 6 + 5^2 = 31 2번째 문자 바뀔..

[프로그래머스] 전력망을 둘로 나누기_자바

https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 송전탑 전선을 하나씩 끊어보면서 가장 적은 차이를 냈을 때를 찾는 것. BFS를 사용한다. public int solution(int n, int[][] wires) { int answer = n-1; // 송전탑 개수 최대 차이 a = new int[n+1][n+1]; for(int i=0; i

[프로그래머스] 소수 찾기_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr https://hu-coding.tistory.com/132 [Java] 프로그래머스 Lv.2 : 소수 찾기 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니 hu-coding.tistory.com ..

[프로그래머스] 가장 큰 수_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 맨 앞자리수가 큰 순으로 정렬하면 된다고 생각했다. 따라서 numbers의 원소들을 문자열로 변환하고 String 배열에 삽입했다. 원소들을 정렬하기 위해 Comparator를 사용하고 compare 메소드를 override 해주었다. 사전순으로 정렬지만 두 번째 예제처럼 303 보다 330이 더 큰 경우가 있기 때문에 두 문자열을 비교할 수 있도록 compare 메소드에 구현했다. (이전에 Co..

[프로그래머스] 이중우선순위큐_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선순위큐 2개를 사용해서 풀 수 있는 문제 (하나는 오름차순 정렬, 다른 하나는 내림차순 정렬) PriorityQueue q = new PriorityQueue(); PriorityQueue q2 = new PriorityQueue(Collections.reverseOrder()); ** queue에서 특정 값을 지우는 것은 -> quque.remove(값) ** import java.util...

[프로그래머스] 프린터_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선 순위 큐를 사용해야 하는 문제 priorities 배열을 우선 순위 큐에 넣으면 오름차순으로 정렬 되기 때문에 PriorityQueue q = new PriorityQueue(Collections.reverseOrder()); 이렇게 내림차순으로 정렬한다. import java.util.*; public class P4 { public static void main(String[] args)..

[프로그래머스] 위장_자바

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예를 들어 상의가 A벌, 하의가 B벌, 안경이 C벌 있다고 하자. 상의, 하의, 안경을 조합한 경우의 수는 A*B*C 이다. 하지만 각 의상을 선택 안 하는 경우도 있기 때문에 경우의 수는 (A+1)*(B+1)*(C+1) 이다. 여기에 모두 선택 안 하는 경우를 뺀다. import java.util.*; public class P4 { public static void main(String[] a..

[프로그래머스] 폰켓몬_자바

https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정수 배열 nums -> List -> Set 순으로 변환하여 중복 제거된 원소의 개수를 파악했다. Set 크기와 N/2를 비교하여 더 작은 수가 답이 된다. import java.util.*; public class P2 { public static void main(String[] args){ P2 p = new P2(); int[] nums = {3,1,2,3}; Sy..

[백준] 수들의 합_자바

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 자연수 N의 최댓값을 구해야하기 때문에 작은 자연수부터 더해야할 것이다. EX) S=60 자연수 1부터 합이 60을 넘어갈 때까지 더한다. 11까지 더했을 때 60을 넘긴다. 1+2+3+4+5+6+7+8+9+10+11 = 66 60을 만드려면 66에서 6을 빼면 된다. 이렇게 되면 서로 다른 N개의 자연수를 더해 S를 만들 수 있다. 따라서 자연수 개수는 11-1 = 10개이다. import java.util.Scanner; public class P1789 { public static void main(Strin..

알고리즘/백준 2022.11.12

[백준] 그룹 단어 체커_자바

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문자열로 문자 배열 만듦. 바로 앞 문자와 비교해서 같으면 넘어가고 다른데 이전에 나온적 있다면 그룹 단어가 아님, 나온적 없다면 그룹 단어가 될 수 있음 이전에 나왔는지 확인하기 위해 알파벳 개수 크기로 int 배열 만들었다. 문자 배열에서 나온 알파벳을 확인하려면 확인 배열 인덱스가 알파벳-97인 부분 값이 1인지 확인하려고 했다. 1이면 이전에 나온 알파벳이고..

알고리즘/백준 2022.11.10