목록전체 글 (135)
100세까지 코딩
문제 설명 풀기 전 생각 자연수 1부터 시작이니 start와 end라는 투 포인터를 1로 지정 end가 N이 되면 자기 자신도 합으로 나타나지므로 N+1까지 반복 (sum > N)이면 start 빼고, (sum < N)이면 end 더하고 포인터 옮기기 (sum == N)이면 cnt++; sum에서 start 빼고 start 포인터 옮기기 import java.util.Scanner; public class Baek2018 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int sum = 0; int start = 1; int end = 1; int cnt = 0; whil..
문제 설명 풀기 전 생각 배운 대로 구간 합 공식을 사용 인덱스는 0부터 시작하지만 구간은 1부터 시작하므로 [N+1] 배열 선언 구간 합 배열은 S [1]부터 채워 나가기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Baek11659 { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer..
StringTokenizer 문자열을 우리가 지정한 구분자로 문자열을 쪼개주는 클래스 주요 메서드 countTokens() 현재 남아있는 token 개수 hasMoreTokens() 남아있는 토큰이 있으면 true, 없으면 false nextToken() 객체에서 다음 토큰 반환 사용 예시 import java.util.StringTokenizer; public class test { public static void main(String[] args) { String str = "Hello java world"; StringTokenizer st = new StringTokenizer(str); // 생성자 System.out.println(str); System.out.println("토큰 갯수 :"..
한눈에 정리 BufferedReader Scanner 버퍼 사이즈(byte) 8192 1024 데이터 파싱 String으로 단순히 읽음 원하는 타입으로 파싱 예외 처리 IOException 던짐 IOException 숨김 Syncronized O X 속도 빠름 느림 1) Scanner 공백 및 개행을 기준으로 읽는다. 원하는 타입으로 파싱 해서 읽을 수 있다. 버퍼의 사이즈가 1024byte(1KB)이다. 예외 처리를 명시할 필요가 없다. 동기화를 지원하지 않아서 멀티스레드 환경에서 문제가 발생할 수 있다. 데이터를 입력받는 즉시, 사용자에게 전송되기 때문에 많은 시간이 소요된다. 1-1) 사용법 Scanner sc = new Scanner(System.in); int i = sc.nextInt(); 2..
문제 설명 풀기 전 생각 배열 생성 후 하나씩 저장 Arrays.sort를 사용하여 정렬 후 최대값(M)찾기 배열을 순회하며 총합 구하기 계산식을 묶어 (총합 * 100 / M / N) 으로 평균 구하기 import java.util.Arrays; import java.util.Scanner; public class Baek1546 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; int sum = 0; for(int j = 0; j < arr.length; j++){ arr[j] = sc.nextInt(); } Arrays.sor..