본문 바로가기
728x90
반응형

자바 코딩테스트10

[코테] 프로그래머스 코딩테스트 : 정수 내림차순으로 배치하기 정수 내림차순으로 배치하기 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 import java.util.*;class Solution { public long solution(long n) { String[] list = String.valueOf(n).split(""); //Arrays.sort(list); // 오름차순 배열 정렬 Arrays.sort(list, Collec.. 2025. 2. 12.
[코테] 프로그래머스 코딩테스트 : 문자열 내 p와 y의 개수 문자열 내 p와 y의 개수 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 s answer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로.. 2025. 2. 12.
[코테] 프로그래머스 코딩테스트 : 두 정수 사이의 합 두 정수 사이의 합 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 class Solution { public long solution(int a, int b) { long answer = 0; if(a == b) { an.. 2025. 2. 12.
[코테] 프로그래머스 코딩테스트 : 자연수 뒤집어 배열로 만들기 자연수 뒤집어 배열로 만들기 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] class Solution { public int[] solution(long n) { int length = Long.toString(n).length(); int[] answer = new int[length]; for (int i = 0; i 2025. 2. 12.
[코테] 프로그래머스 코딩테스트 : 나머지가 1이 되는 수 찾기 나머지가 1이 되는 수 찾기자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 3 ≤ n ≤ 1,000,000 n result 10 3 12 11 class Solution { public int solution(int n) { int min = n; for(int i = n; i >= 1; i--){ if(n % i == 1) { if(min >= i) min = i; } } System.out.println(min); .. 2025. 2. 12.
[TIL] 자바 알고리즘 코딩 테스트 개념 : 구간 합 구하기 합 배열S[i] = S[i-1] + A[i] 구간 합 S[j] - s[i-1]수 N개가 주어졌을 때 i번째 수에서 j번째 수까지의 합을 구하는 프로그램 입력1번째 줄에 숫자의 개수 N(1(1 2번째 줄에 N 개의 수3번째 줄부터는 M개의 줄에 합을 구해야 하는 구간 i와 j 출력 예제5 3 // 데이터의 개수, 질의 개수5 4 3 2 1 // 구간 합을 구할 대상 배열1 3 // 구간 1~32 45 51291  코드import java.util.*;public class main { public static void main(String[] args){ // 받는 데이터가 많을 때에는 Scanner보다 BufferedReader 사용 BufferedReader bf = new Buf.. 2025. 2. 12.
[TIL] 자바 알고리즘 코딩 테스트 개념 : 구간 합 알고리즘 구간 합 알고리즘배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘 합 배열S[i] = S[i-1] + A[i] 구간 합 S[j] - s[i-1]S[5] - S[1] = A[2] + A[3] + A[4] + A[5] 2025. 2. 12.
[TIL] 자바 알고리즘 코딩 테스트 개념 : 평균 구하기 성적의 최댓값을 M이라고 할 때 모든 점수를 점수/M*100 으로 고쳤을 때, 새로운 평균 구하기 입력1번째 줄에 숫자의 개수 N(12번째 줄에 현재의 성적(100보다 작거나 같은 음이 아닌 정수, 적어도 1개의 값은 0보다 큼) 출력 예제340 80 6075.041 100 100 10075.25 변환 점수의 평균 구하는 식 -> (A+B+C) * 100 / M / 3 코드 import java.util.*;public class main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); // 개수 int A[] = new int[N]; // .. 2025. 2. 12.
[TIL] 자바 알고리즘 코딩 테스트 개념 : 숫자의 합 구하기 N개의 숫자가 공백 없이 써있을 때, 숫자를 모두 합해 출력 입력1번째 줄에 숫자의 개수 N(1 출력 예제55432115111098765432146 코드import java.util.*;public class main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); // 개수 입력 String sNum = sc.next(); // 개수에 맞춘 숫자 입력 char[] cNum = sNum.toCharrArray(); // String변수를 char형 배열로 변환 int sum = 0; fo.. 2025. 2. 12.
[TIL] 자바 알고리즘 코딩 테스트 : 시간 복잡도 / 디버깅 알고리즘에서의 시간 복잡도주어진 문제를 해결하기 위한 연산 횟수 (일반적으로 1억 번의 연산을 1초의 시간으로 간주) 빅-오메가 : 최선 ex) 1번빅-세타 : 보통 ex) n/2번빅-오 : 최악 ex) n번 -> 항상 최악의 케이스 염두 해둘 것 연산 횟수 계산  = 알고리즘 시간 복잡도 X 데이터의 크기 -> 위의 공식을 대입해 해당 알고리즘이 문제에 적합한지 판단함-> 시간 복잡도 도출시 상수는 계산에서 제외 ex) 3N -> N-> 가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 됨 디버깅문법 오류나 논리 오류를 찾아 바로잡는 과정 1) 변수 초기화 오류 Variables탭2) 반복문 인덱스 범위 지정 오류 ex) i3) 잘못된 변수 사용 오류4) 자료형 범위 오류 ex) int ->.. 2025. 2. 12.
728x90
반응형