본문 바로가기

코테25

[프로그래머스] 피로도 (Java) 이번 문제는 완전탐색(BFS)를 활용해 풀어야 합니다.사실 완전탐색을 잘 몰라서 해당 개념을 서치하고, 다른 분들은 어떻게 푸셨는지 많이 참고해서 풀어보았습니다. 다만 모두 완전탐색을 안다는 것을 전제로 설명한 글이 많기에동작을 제대로 설명해주는 글이 없는듯하여 어떤 과정으로 코드가 동작된건지 설명하려합니다. 중요한 포인트는 세가지 입니다.1. 방문 여부 & 최소 피로도 만족 확인2. 다음 던전으로3. 다음 던전에 못가면 처음부터 다시 탐색   코드를 순서대로 실행하다보면 중간에 탐험이 불가능해질때가 생깁니다.  이때 재귀함수가 멈추고 visited[n] = false로 재정의됩니다.그리고 반복문에 의해 그 다음 n+1 자리로 가게 됩니다.  그리고 다시 재귀함수를 돌게 됩니다.끝까지 잘돌면 answer.. 2025. 3. 28.
[프로그래머스] Java : 귤 고르기 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다.예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다.경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크기가 서로 다른 종.. 2025. 2. 14.
[프로그래머스] Java : N개의 최소공배수 문제)두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.입출력 예)arrresult[2, 6, 8, 14]168[1, 2, 3]6  제가 생각한 알고리즘은 두수의 최소공배수를 구하는 방법을 확장시킨겁니다.예를 들어 3과 4의 최소공배수는 12이고, 2와 6의 최소공배수는 6입니다.이를 구하는 방법은 a * b / (최대공약수) 를 떠올리시면 됩니다.저는.. 2025. 2. 5.
[프로그래머스] Java : k의 개수 문제1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.  입출력 예ijkresult1131610505531020    1. i부터 j에 속하는 정수를 문자형으로 바꾸기for(int z=i; z 2. 만약 정수 k를 포함한다면 원소 split()if(str.contains(kStr)){ String[] arr = str.split(""); 3. split()된 원소가 k와 동일하다면 증가for(String arrSplit : arr){ if(arrSplit.equals(kStr)){ answer++;    코드class Sol.. 2024. 5. 24.
[프로그래머스] Java : A로 B 만들기 문제문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.  입출력 예beforeafteranswer"olleh""hello"1"allpe""apple"0     1. 정렬시키기char[] beforeArray = before.toCharArray();Arrays.sort(beforeArray);char[] afterArray = after.toCharArray();Arrays.sort(afterArray); String beforeString = new String(beforeArray);String afterString = new String.. 2024. 5. 20.
[프로그래머스] Java : 이진수 더하기 문제이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.   입출력 예bin1bin2result"10""11""101""1001""1111""11000"       1. n진수를 10진수로 변환Integer.parseInt(String s,int n);   2. 10진수를 2진수로 변환Integer.toBinaryString(int i);    코드class Solution { public String solution(String bin1, String bin2) { String answer = ""; int binOne = Integer.parseInt(bin1, 2); .. 2024. 5. 20.
[프로그래머스] Java : 옹알이(1) 문제머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.   입출력 예babblingresult["aya", "yee", "u", "maa", "wyeoo"]1["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]3      1. 주어진 발음이랑 같으면 "!"로 replacefor(int i=0; i babbing배열의 원소 안에 inventory가 속해있는지를 확인합니다.만약 속해있다면 .. 2024. 4. 18.
[프로그래머스] Java : 등수 매기기 문제영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.   입출력 예scoreresult[[80, 70], [90, 50], [40, 70], [50, 80]][1, 2, 4, 3][[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]][4, 4, 6, 2, 2, 1, 7]      1. 평균 구하기double[] mid = new double[score.length]; for(int i=0; i.. 2024. 4. 17.