티스토리 뷰
codeplus - 프로그래밍 대회에서 사용하는 Java 참고
System.out
System.out.println();
System.out.printf("%d", n)
실수형, 문자형 자료 출력 가능
Scanner
next[자료형]을 이용해서 입력을 받을 수 있고,
hasNext[자료형]을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있다.
두 수 입력
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a, b;
a = scanner.nextInt();
b = scanner.nextInt();
System.out.println(a + b);
}
}
입력에서 정수가 주어지는 동안 계속 입력 받음
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
while(scanner.hasNextInt()) {
sum += scanner.nextInt();
}
System.out.println(sum);
}
}
정수와 문자열 동시 처리
1의 뒤에 줄바꿈 \n이 존재하기 때문에, 줄바꿈을 읽어들여서 hi를 읽지 못한다.
따라서, nextLine()으로 다음 문장을 읽기 전에, scanner.nextLine(); 줄바꿈을 입력받는 코드를 한 줄 작성해야 올바른 의도대로 코딩을 할 수 있다..
<입력>
1
hi
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
scanner.nextLine();
String s = scanner.nextLine();
System.out.println(n + "\n" + s);
}
}
BufferedReader
Scanner는 매우 편리하지만 속도가 느리기 때문에, 입력을 많이 받아야 하는 경우에는 BufferedReader를 사용하는 것이 훨씬 좋다.
bufferedReader에서는 read와 readLine만 있기 때문에, 정수는 파싱을 해야한다.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] line = bf.readLine().split(" ");
String a = line[0] + line[1];
String b = line[2] + line[3];
long result = Long.valueOf(a) + Long.valueOf(b);
System.out.println(result);
}
}
10 20 30 40
4060
StringTokenizer
문자열을 토큰으로 잘라야 할 때 사용하면 편하다.
수 N개의 합을 구하는 문제
입력받은 수 N개의 합을 출력한다.
예제입력
1 2 3 4 5
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 bf = new BufferedReader(new InputStreamReader(System.in));
String line = bf.readLine();
StringTokenizer st = new StringTokenizer(line, " ");
int sum = 0;
while(st.hasMoreTokens())
sum += Integer.valueOf(st.nextToken());
System.out.println(sum);
}
}
15
문자열 S에 포함되어 있는 자연수의 합을 출력하라
입력
10,20,30,40,50
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 bf = new BufferedReader(new InputStreamReader(System.in));
String line = bf.readLine();
StringTokenizer st = new StringTokenizer(line, ",");
int sum = 0;
while(st.hasMoreTokens())
sum += Integer.valueOf(st.nextToken());
System.out.println(sum);
}
}
150
StringBuilder
출력해야 하는 것이 많은 경우에는, 매번 출력하는 것 보다
StringBuilder를 이용해 문자열을 만들고, 한번에 출력하는 것이 속도면에서 좋다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
for (int i = 1; i <= a; i++)
System.out.println(i);
}
}
수행시간 : 676 MS, 메모리 : 30256 KB
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= a; i++)
sb.append(i + "\n");
System.out.println(sb);
}
}
수행시간 : 216 MS, 메모리 : 11532 KB
'ICT Eng > Algorithm' 카테고리의 다른 글
[Algorithm] 4-2. Binary Search Tree - 이진탐색트리 (1) | 2018.02.09 |
---|---|
[Algorithm] 4-1. 트리와 이진트리(tree and binary tree) (0) | 2018.02.06 |
[Algorithm] 3-9. Sorting in Java (0) | 2018.01.31 |
[Algorithm] 3-8. Radix Sort (0) | 2018.01.31 |
[Algorithm] 3-7. Counting Sort - 선형시간 알고리즘 (0) | 2018.01.29 |
- Total
- Today
- Yesterday
- AWS
- Wisoft
- 순환
- Recursion
- 알고리즘
- 라즈베리파이
- 한밭이글스
- github
- 인프런
- 정렬
- RBT
- 레드블랙트리
- 자바
- Spring
- Spring Boot
- 스프링부트
- 젠킨스
- 무선통신소프트웨어연구실
- vuex
- ORM
- Raspberry Pi
- Vue.js
- Algorithm
- 시간복잡도
- JPA
- 한밭대학교
- vuejs
- IT융합인력양성사업단
- Java
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |