[JAVA] 프로그래머스 튜플
·
Algorithm/Programmers
import java.util.*;class Solution { public int[] solution(String s) { //String 묶음으로 갈무리 String[] lists = s.substring(2, s.length() - 2).split("},\\{"); //크기가 작은 순으로 정렬 Arrays.sort(lists, Comparator.comparingInt(String::length)); Set checkDuplication = new HashSet(); int[] answer = new int[lists.length]; int indexCount = ..
[JAVA] 프로그래머스 [1차] 캐시
·
Algorithm/Programmers
import java.util.LinkedHashMap;import java.util.Map;class Solution { public int solution(int cacheSize, String[] cities) { if (cacheSize == 0) { return cities.length * 5; // 캐시 크기가 0이면 모든 요청이 miss } int answer = 0; // LRU 캐시를 위한 LinkedHashMap 설정 Map cachedMap = new LinkedHashMap(cacheSize, 0.75f, true) { @Override protected b..
[JAVA] 프로그래머스 괄호 회전하기
·
Algorithm/Programmers
import java.util.Stack;class Solution { public int solution(String s) { int answer = 0; int n = s.length(); if (n == 1) { return 0; // 길이가 1이면 올바른 괄호 문자열이 될 수 없음 } for (int i = 0; i stack = new Stack(); int n = s.length(); for (int i = 0; i  풀이1. 문자열의 첫번째 값이 맨뒤로 이동해야된다.2. 그리고 그 맨뒤로 이동한 스트링의 값을 확인해야된다.3. 그것을 이제 시작점과 i번째의 나눈 나..
[JAVA] 프로그래머스 할인행사
·
Algorithm/Programmers
import java.util.HashMap;class Solution { public int solution(String[] want, int[] number, String[] discount) { int answer = 0; HashMap map = new HashMap(); // 처음 10개의 아이템을 카운트 for (int i = 0; i map, String[] want, int[] number) { for(int i = 0; i  주어진 조건회원가입 일 수 10최대 수량 10회원등록시 정현이가 원하는 제품을 모두 할인 받을 수 있는 회원등록 날짜의 총 ..
[JAVA] 프로그래머스 연속 부분 수열 합의 개수
·
Algorithm/Programmers
//연속 부분 수열만을 다룬다.import java.util.HashSet;import java.util.Set;class Solution { public int solution(int[] elements) { int answer = 0; int count = elements.length; int[] list = new int[count * 2]; Set numSet = new HashSet(); for(int i = 0; i 0) { int sumLength = elements.length - count; for(int i = 0; i  풀이1. 연속된 수를 ..
[JAVA] 프로그래머스 예상 대진표
·
Algorithm/Programmers
class Solution { public int solution(int n, int a, int b) { int answer = 0; int divideNum = n / 2; int middleNum = n / 2; while(divideNum > 1) { //한쪽에 몰려 있다면? if(middleNum a && middleNum + 1 > b) { divideNum /= 2; middleNum = middleNum - divideNum; } //한쪽에 몰려 있지 않다면? else ..