PROGRAMMERS/연습문제
-
[프로그래머스] [JAVA] [Level 1] [코딩테스트 입문] 옹알이 (1)PROGRAMMERS/연습문제 2023. 1. 24. 13:29
class Solution { public int solution(String[] babbling) { int answer = 0; int count = 0; String str[] = {"aya", "ye", "woo", "ma"}; // 옹알이 사전에 있는 단어가 포함된 경우 0으로 바꿔줌 for (int i = 0; i < babbling.length; i++) { for (int j = 0; j < str.length; j++) { babbling[i] = babbling[i].replace(str[j], "0"); } // 한글자씩 체크하면서 0 이 아닌 경우(옹알이 사전에 합당하지않는 경우)는 카운트를 늘려줌 for (int k = 0; k < babbling[i].length(); k++) ..
-
[프로그래머스] [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개
-
[프로그래머스] [JAVA] [Level 2] [연습문제] N개의 최소공배수PROGRAMMERS/연습문제 2022. 9. 20. 01:12
import java.util.*; class Solution { // 유클리드 호제법(최대 공약수 구하기) public static int gcd(int a, int b){ int maxNum = Math.max(a, b); int minNum = Math.min(a, b); while(minNum!=0){ int r = maxNum % minNum; maxNum = minNum; minNum = r; } return maxNum; } public int solution(int[] arr) { int answer = arr[0]; for(int i = 1;i
-
[프로그래머스] [JAVA] [Level 2] [연습문제] 다음 큰 숫자PROGRAMMERS/연습문제 2022. 9. 15. 23:12
1. Integer.toBinaryString() + replace() + length() import java.util.*; class Solution { public int solution(int n) { int answer = 0; while(true){ answer++; if(answer>n && Integer.toBinaryString(answer).replace("0","").length() == Integer.toBinaryString(n).replace("0","").length()){ return answer; } } } } 테스트 케이스는 통과하지만 효율성 테스트에서 시간 초과됨 2. for문으로 조건1을 만족 + Integer.bitCount import java.util.*; cla..
-
[프로그래머스] [JAVA] [Level 2] [연습문제] 피보나치 수PROGRAMMERS/연습문제 2022. 9. 15. 01:38
1. 재귀 함수 public int fibo(int n){ if(n==0) return 0; if(n==1) return 1; return fibo(n-1) + fibo(n-2); } 7~14 테스트케이스 런타임 에러 발생 일부 언어는 재귀 호출을 할 수 있는 횟수가 정해져 있고, 횟수를 넘어 재귀 호출을 하면 런타임 에러를 내도록 설계되어 있다. 2. 배열+반복문 이용 class Solution { public int solution(int n) { int arr[] = new int[n+1]; arr[0] = 0; arr[1] = 1; for(int i=2; i
-
[프로그래머스] [JAVA] [Level 2] [연습문제] 최솟값 만들기PROGRAMMERS/연습문제 2022. 9. 9. 16:03
import java.util.*; class Solution { public int solution(int []A, int []B) { int answer = 0; int length = A.length; // 오름차순 정렬 Arrays.sort(A); Arrays.sort(B); // 누적 최솟값을 만들기 위해서는 (A의 가장 작은수)*(B의 가장 큰수)를 해야하기 때문에 for(int i=0; i
-
[프로그래머스] [JAVA] [Level 2] [연습문제] 이진 변환 반복하기PROGRAMMERS/연습문제 2022. 9. 9. 15:52
import java.util.*; class Solution { public int[] solution(String s) { int zeroCount=0; // 0의 개수를 세어 줄 카운트 int count=0; // 몇 회차 인지 세어 줄 카운트 int lengt = 0; // s의 길이 while(true){ // 문자열에서 0 카운트해주기 for(int i=0; i 10진법 Integer.toBinaryString(number) // 10진법 -> 2진법 Integer.toOctalString(number) // 10진법 -> 8진법 Integer.toHexString(number) // 10진법 ->16진법