PROGRAMMERS
-
[프로그래머스] [JAVA] [Level 2] [스택/큐] 기능개발PROGRAMMERS/스택&큐 2022. 10. 5. 02:12
1. Stack import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { Stack stk = new Stack(); ArrayList al = new ArrayList(); int count=1; for(int i=0; i import Stack stack = new Stack() -> int형 스택 선언 stack.isEmpty() -> Stack 비어있는지 true ,false로 반환 stack.push() -> Stack 에 값 추가 stack.pop() -> Stack 가장 최근 값을 꺼냄(삭제) stack.clear() -> Stack 초기화 stack.peek() -> Stack의 가..
-
[프로그래머스] [JAVA] [Level 2] [해시] 위장PROGRAMMERS/해시 2022. 9. 28. 16:52
import java.util.*; class Solution { public int solution(String[][] clothes) { HashMap hm = new HashMap(); // 의상이 1개일 경우를 생각해서 answer값을 초기화 int answer = clothes.length; // 의상의 종류가 같을 때마다 value를 1씩 더해줌 for(int i=0; i 1) { int count = 1; // 의사의 종류(key)에 해당하는 의상의 옷(value)이 // 2개일때는 경우의 수가 3개(ex. 의상 1, 의상 2, 아무것도안입기) // 이기 때문에 value +1 을 해주고 // 의상의 종류에 해당하는 옷의 value값끼리 곱해주면 된다. for(String key : hm.k..
-
[프로그래머스] [JAVA] [Level 2] [2019 카카오 개발자 겨울 인턴십] 튜플PROGRAMMERS/KAKAO 2022. 9. 28. 02:02
import java.util.*; class Solution { public int[] solution(String s) { // 칸을 나눌 곳을 '/' 로 치환 s = s.replace("},{","/"); // '{', '}' 문자 삭제 s = s.replaceAll("[{}]",""); // '/'을 기준으로 배열로만들어줌 String arr[] = s.split("/"); // 배열을 길이에 따라 정렬 Arrays.sort(arr,new Comparator(){ public int compare(String o1, String o2){ return Integer.compare(o1.length(), o2.length()); } }); ArrayList alist = new ArrayList();..
-
[프로그래머스] [JAVA] [Level 2] [월간 코드 챌린지 시즌2] 괄호 회전하기PROGRAMMERS/챌린지 2022. 9. 26. 17:53
https://tmdrl5779.tistory.com/220 참조 import java.util.*; class Solution { public int solution(String s) { int answer = 0; // 문자열 회전 for(int i = 0; i < s.length(); i++){ // 문자열 s를 StringBuilde로 초기화시켜준다. StringBuilder sb = new StringBuilder(s); // 왼쪽으로 회전시킬 문자열을 담아놓을 subString String subString = sb.substring(0, i); // 회전시킬 부분을 잘라준다. sb.delete(0,i); // 잘린 sb에 회전시킬 문자열이 담아져있는 subString을 붙혀준다. sb.app..
-
[프로그래머스] [JAVA] [Level 2] [2018 KAKAO BLIND RECRUITMENT] [1차] 캐시PROGRAMMERS/KAKAO 2022. 9. 24. 01:27
import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { int answer = 0; int hit = 1; int miss = 5; // LRU 알고리즘 구현을 위한 LinkedList LinkedList cache = new LinkedList(); // cacheSize가 0 일 경우 전부 cache miss if (cacheSize == 0) { answer = cities.length * miss; return answer; } for(String s : cities){ // 대문자로 통일 s = s.toUpperCase(); // 삭제가 성공하면 true반환 -> s가 이미 존재한다. if..
-
[프로그래머스] [JAVA] [Level 2] [Summer/Winter Coding(~2018)] 점프와 순간 이동PROGRAMMERS/Summer&Winter Coding 2022. 9. 22. 16:33
import java.util.*; public class Solution { public int solution(int n) { int ans = 0; while(n!=0){ if(n%2==0){ n /= 2; } else{ n -= 1; ans++; } } return ans; } } top-down 방식의 형태로 고민하면서 구조를 찾아보자
-
[프로그래머스] [JAVA] [Level 2] [연습문제] 멀리 뛰기PROGRAMMERS/연습문제 2022. 9. 21. 17:36
class Solution { public long solution(int n) { long answer = 0; long arr[] = new long[n+1]; // 피보나치의 수열 알고리즘 적용 arr[0] = arr[1] = 1; for(int i=2; i (1) 2칸 -> (1, 1) (2) 3칸 -> (1, 1, 1) (2, 1) (1, 2) 4칸 -> (1, 1, 1, 1) (2, 1, 1) (1, 2, 1) (1, 1, 2) 5칸 -> (1, 1, 1, 1, 1) (2, 1, 1, 1) (1, 2, 1, 1) (1, 1, 2, 1) (1, 1, 1, 2) (2, 1, 2) (2, 2, 1) (1, 2, 2) 1칸 1개 2칸 2개 3칸 3개 4칸 5개 5칸 8개