Algorithm
[프로그래머스] 다음 큰 숫자 - JAVA
📌문제 💡 풀이 이진법 변환에 대해서 알고있는지 묻는 문제라고 생각했고, Integer.toBinaryString()을 사용해서 풀어야한다는 생각까지하고 문제를 풀고자 하였다. class Solution{ public int solution(int n){ int answer = 0; // 1. 주어진 n을 2진수로 변환한다. String str = Integer.toBinaryString(n); // 2. 2진수로 변환한 n에 1의 개수를 구한다. int cnt = 0; for(int i=0; i 16진수 Integer.toHexaString() 2) 2진수, 8진수, 16진수를 10진수로 변환하기 2진수 -> 10진수 parseInt(str, 2) 8진수 -> 10진수 parseInt(str, 8) 1..
[Algorithm] 약수의 개수 구하기 - JAVA
약수의 개수 구하기 프로그래머스 - 기사단원의 무기 문제를 푸는데 시간초과가 되었다. 약수의 개수는 많이 나오는 문제 같아서 정리를 하고자 한다. ✔ 시간초과 되었던 풀이 - 이런식으로 처음 약수의 개수를 구할 때는 1부터 n까지 하나하나 체크를 하려다 보니 시간초과가 되었던 것이다. int cnt = 0; for(int i=1; i
[Algorithm] 합이 같은 부분집합 (DFS) - JAVA
📌 문제 💡 해결 import java.util.*; public class Exercise01 { static String answer = "NO"; static int n, total = 0; boolean flag = false; // 1) 첫 번째 원소부터 경우의 수를 체크한다. // 2) 해당 원소가 더해진 경우(20번째줄) 와 더해지지 않는 경우(21번째줄) 나누어서 체크한다. // 3) 구해진 부분집합의 합들 중에서 total 합의 절반의 값이 있다면 // 두 부분집합이 같은 경우 이므로 YES를 return한다. public void DFS(int L, int sum, int[] arr){ if(flag) return; if(sum>total/2) return; if(L == n){ if(..
[Algorithm] 좌표 정렬 - compareTo
좌표정렬 관련 문제를 만났을 때 사용가능한 알고리즘을 정리해두고자 한다. class Point implements Comparable { public int x, y; Point(int x, int y){ this.x = x; this.y = y; } @Override public int compareTo(Point o){ if(this.x == o.x) return this.y - o.y; else return this.x - o.x; } } class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ArrayList arr = new ArrayList(); for..