본문 바로가기

CODING TEST55

자바로 코딩테스트 볼 때 일단 무지성으로 박고 시작하는 것 코딩 테스트를 시작할 때 자바로 기본 템플릿을 준비해두면 편리합니다. 아래는 자바로 코딩 테스트를 시작할 때 기본적으로 사용할 수 있는 템플릿 코드입니다:import java.util.*; import java.io.*;public class Main { public static void main(String[] args) throws IOException { // 여기에 코드를 작성하세요 } }이 템플릿을 사용하면 입출력 관련 예외 처리가 이미 포함되어 있어, 코딩 테스트에 집중할 수 있습니다.문제 풀면서 필요한 대부분의 메소드가 들어간 패키지도 다 import했다. 2024. 5. 16.
[Do it 코테 자바편] 어떤 알고리즘으로 풀어야 할까? 시간 복잡도: 그냥 빅-오, 즉 최악일 때의 연산 횟수만 기억하면 됨 -> 어떠한 케이스라도 통과 못하면 안 되기 때문어떤 코드의 시간 복잡도 파악상수는 무시한다. 즉 for문이 한 개 있으면 복잡도가 n이라 치자. for문이 3개 있어도 컴퓨터 입장에선 n이나 3n이나 도토리 키재기다. 그러니 무시한다.가장 많이 중첩된 반복문 수행 횟수가 기준이 된다: 즉 for문이 1억개 있어도, 이중 for문 하나를 못 이긴다는 소리다. 즉 복잡도는 n의 제곱이지, n의 제곱 + 1억*n이 아니란 소리다.연산 횟수: 시간 복잡도 n에 데이터 크기 대입하면 됨시간복잡도로 1. 문제 제한 시간에 맞는 알고리즘 선택할 수 있고 2. 내가 짜는 로직에서 복잡도 효율이 안 좋아 불통하는 부분을 찾아낼 수 있다 빠른 거부터.. 2024. 5. 16.
[Java] 문제 005(백준 10986번) 이 문제는 합 배열과 부분 합을 이용해서 푸는 문제다.이에 대해 자세히 모르면 구간 합 구하기4를 참고하자.문제나머지 합(Baekjoon: 10986번)설명주의해야 할 부분시간 제한 생각 없이, 구현만 하다 보면, 시간 초과로 틀리는 경우가 종종 있다.시간 초과 코드 보기이중 for문을 이용하니, 시간 복잡도가 O(n^2)이 되어 시간 초과가 되었다.나머지 연산 분배법칙시간 복잡도를 줄이기 위해 "모듈로 연산"을 적용해야 한다.(A + B) % C = ((A % C) + (B % C)) % C위 공식이 나머지 연산 분배법칙이다.이에 대한 증명은 이 페이지를 참고하면 좋을 것 같다.위 공식은 어디에 적용해야 하는 걸까?일단 i~j의 구간 합은 S[j]-S[i-1]로 표현 가능하다.그리고 문제 목표는 구간 .. 2024. 2. 14.
[Java] 문제 004(백준 11660번) 문제구간 합 구하기 5(Baekjoon: 11660번)  풀이import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception { // n, m 입력받기 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nex.. 2024. 2. 14.
[Java] 문제 003(백준 11659번) 문제 구간 합 구하기 4(Baekjoon: 11659번) 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int suNo = Integer.parseI.. 2024. 2. 14.
[Java] 문제 002(백준 1546번) 문제 평균 구하기(Baekjoon: 1546번) 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { // 시험 본 과목 개수 입력받기 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 각 과목의 시험 성적 입력받기 int a[] = new int[n]; for (int i = 0; i max) max = a[i];.. 2024. 2. 14.
[Java] 문제 001(백준: 11720번) 문제숫자의 합 구하기(Baekjoon: 11720번)풀이import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // String 변수로 받아 문자 배열로 변환하기 String sNum = sc.next(); char[] cNum = sNum.toCharArray(); int sum = 0; for (int i = 0; i 설명개요n의 범위가 1~100이므로, int형, long형과 같은 숫자형으로 담으려면, 범위가 초과한다.따라서 문자열 형태로 2번째 숫자를 입력받.. 2024. 2. 14.