[프로그래머스 / Java] 숫자 짝꿍
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
풀이Map 형식으로 X, Y의 문자 빈도를 계산한다.9부터 0까지 내림차순으로 반복문을 만든다.두 개의 Map의 같은 키가 있으면 값 중 작은값 만큼 숫자를 추가한다(String)결과에 따라 리턴값을 변경한다.import java.util.*;class Solution { public String solution(String X, String Y) { // 두 숫자의 각 숫자 빈도를 저장할 맵 생성 Map countX = new HashMap(); Map countY = new HashMap(); // X의 숫자 빈도 계산 for (char c : X.toCharArray()) { countX.put(c, countX..
[프로그래머스 / Java] 점 찍기
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
첫번째 풀이import java.util.*;class Solution { public long solution(int k, int d) { long answer = 0; for(int a=0; a 결과 시간초과 몇개와 다수의 실패가 보인다.제한 사항의 k와 d의 길이가 100만이여서 시간초과가 뜨는 것 같다.이 방식은 계속 시간복잡도가 클거 같아 다른 방식을 생각해보았다.  두번째 풀이import java.util.*;class Solution { public long solution(int k, int d) { long answer = 0; for(int a=0; a 결과일단 시간초과 문제는 해결하고 테스트 수행 속도도 반으로 줄었다. 세번..
[프로그래머스 / Java] 혼자 놀기의 달인
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 해답 코드import java.util.*;class Solution { static boolean[] visit; static int depth; public int solution(int[] cards) { int answer = 1; int len = cards.length; visit = new boolean[len]; List list = new ArrayList(); for (int i = 0; i  2. 해설노드들이 이어져있고 하나씩 탐색하다가 탐색 할 수 없는 곳에서 멈춘다 -> DFS 문제 solution 메서드는 배열을 순회하면서 방문하지 않은 노드를 발견하면 DFS를 시작합니다. open 메서드는 해당..
[프로그래머스 / Java] 과일장수
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 문제  2. 생각문제가 길긴한데 찬찬히 살펴보면과일장수가 가능한 많은 사과를 팔았을 때 -> 아무리봐도 상자 몇개 제한 이라는 말이 없다 -> 비싼 순 m개씩 짤라서 팔면된다.Ex) 입출력 예시 1정렬 : 1 1 1 / 2 2 3 3 => 상자 1개 나옴 m = 4 개씩 묶기 : (위에서 3개 = 2)*m = 2 * 4 = 8Ex) 입출력 예시 2정렬 : 1 1 2 / 2 2 2 / 4 4 4 / 4 4 4 => 상자 4개 나옴 m = 3 개씩 묶기 : (4*m) (4*m) + (2*m) + (1*m) 계산 : 4*3+ 4*3 + 2*3 + 1*3 = 24+6+3 = 33-> 음... 정렬하고 m개씩 짜르고... 그 안에서 계산하면 된다... 3. 코드import java.util.*;class S..
[Kotlin / 코딩테스트] 프로그래머스 - 카펫
·
알고리즘 & 코딩 테스트/Kotlin으로 푼 코딩 테스트
1. 문제 2. 생각대로 풀이 수학적으로 어떠한 공식이 나올꺼 같았다. 해보니 몇가지 공식이 나왔다 노란색 가로의 길이 = X, 세로의 길이 = Y 라고 할 때, xy = yellow 2(x+y)+4 = brown (x+2)*(y+2) = yellow + brown x와 y는 양의 정수이다. 3가지 공식을 반복문을 돌려서 찾았다. class Solution { fun solution(brown: Int, yellow: Int): IntArray { var x = 1 while(true) { if(2*x +(2*yellow)/x==brown-4) { if((yellow/x+2)*(x+2) == brown + yellow) { break; } } x++ } return intArrayOf(yellow/x+2..
[Kotlin / 코딩테스트] 프로그래머스 - 가운데 글자 가져오기
·
알고리즘 & 코딩 테스트/Kotlin으로 푼 코딩 테스트
1. 문제 2. 코드 2-1. 풀이 1 class Solution { fun solution(s: String): String { val sList = s.split("") if (sList.size % 2 == 0) { return sList[sList.size/2-1] + sList[sList.size/2] } else { return sList[sList.size/2] } } } 2-2. 풀이 2 class Solution { fun solution(s: String): String { val middleIndex = s.length / 2 return if (s.length % 2 == 0) { s.substring(middleIndex - 1, middleIndex + 1) } else { s...
마볼링
'알고리즘 & 코딩 테스트' 카테고리의 글 목록