Lv 2. 피보나치 수
·
Algorithm & Data Structures/Programers
피보나치 수 관련 문제 재귀 로 푸는것 보다 DP 로 푸는것이 낫다. class Solution { public int solution(int n) { return fibo(n); } public int fibo(int n){ int[] num = new int[n+1]; num[0] = 0; num[1] = 1; for(int i = 2 ; i
Lv 2. 이진변환 반복하기
·
Algorithm & Data Structures/Programers
class Solution { public int[] solution(String s) { int[] answer = new int[2]; while(s.length()>1){ int cnt=0; for(int i = 0 ; i < s.length() ; i++){ if(s.charAt(i)=='0') answer[1]++; else cnt++; } s = Integer.toBinaryString(cnt); answer[0]++; } return answer; } } Integer -toBinaryString()
Lv 2. 올바른 괄호
·
Algorithm & Data Structures/Programers
올바른 괄호 문제는 백준에서 한번 풀어보았던 문제이지만, 프로그래머스로 IDE 의 힘을 빌리지 않고 코드 작성을 해보니 쉽지 않은 문제였다. 디버깅을 위해 System.out.println() 을 이용하여 디버깅 하는 방법을 잘 연습 해 놓아야 할 것 같다. import java.util.*; import java.io.*; class Solution { boolean solution(String s) { Stack stack = new Stack(); boolean answer =true; int num = s.length(); int count = 0 ; for(int i = 0 ; i < num; i ++){ if(s.charAt(i)=='(') { count++; stack.add((char) s..
Lv 2. 최댓값과 최소값
·
Algorithm & Data Structures/Programers
프로그래머스의 문제에 입문 느낌으로 오랜만에 풀어 보았으나 여러가지 문법의 오류가 있어 상당히 쉬운문제임에도 불구하고 시간적 소모가 꽤 있었다. IDE없이 JAVA로 알고리즘을 풀려니 죽을맛이다. import java.util.StringTokenizer; class Solution { public String solution(String s) { String answer = ""; StringTokenizer st = new StringTokenizer(s); int maxNum = Integer.MIN_VALUE,minNum = Integer.MAX_VALUE; while(st.hasMoreTokens()){ int num = Integer.parseInt(st.nextToken()); if(maxN..
Lv 3. 불량사용자 (Java)
·
Algorithm & Data Structures/Programers
import java.util.Arrays; import java.util.HashSet; public class Solution { static boolean[] check; static HashSet set; public static int solution(String[] user_id, String[] banned_id) { check = new boolean[user_id.length]; set = new HashSet(); for(int i=0; i
Lv2. 124 나라의 숫자 (Java)
·
Algorithm & Data Structures/Programers
package Programmers; import java.util.*; class Solution { public String solution(int n) { Stack stack = new Stack (); String answer = ""; while(n != 0) { int temp = n % 3; if(temp == 0) { temp = 4; n = n / 3 - 1; } else { n /= 3; } stack.push(temp); } while(!stack.isEmpty()){ answer+=stack.pop(); } return answer; } }
Lv2. 요격 시스템 (Java)
·
Algorithm & Data Structures/Programers
백준의 회의실 배정과 같은 알고리즘이었던것 같다. 다만 IDE를 못쓰는게 힘들긴 했다. 적응이 필요할 듯 싶다. import java.util.*; class Solution { public int solution(int[][] targets) { int answer=0; Arrays.sort(targets,(o1,o2)->{ if(o1[1] == o2[1]) return o1[0]-o2[0]; return o1[1]-o2[1]; }); int end = targets[0][1]; answer++; for(int[] tar : targets){ if(tar[0] >= end){ end = tar[1]; answer++; } } return answer; } }