ONLINE JUDGE/제어문
[백준15552] 빠른A+B
W_W_Woody
2022. 2. 2. 23:27
https://www.acmicpc.net/problem/15552
15552번: 빠른 A+B
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
www.acmicpc.net
BufferedReader 을 써줬어도 System.out.println() 을 각 테스트 케이스마다 해주면 시간초과가 되어버린다.
- StringBuilder 로 하나의 문자열로 계속 연결시킨 뒤 가장 마지막에 연결된 하나의 문자열을 출력시키는 방법.
- BufferedWriter 로 버퍼에 담아둬았다가 한 번에 데이터를 보내는 방법
🧩선 개념
bufferedWriter
방법1. BufferedWriter 이용하기
package step3;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Day10_15552_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
// StringBuffer sb = new StringBuffer();
StringTokenizer st;
for (int a = 0; a < N; a++) {
st = new StringTokenizer(br.readLine(), " ");
bw.write(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()) + "\n");
// bw.write("\n");
}
br.close();
bw.flush();
bw.close();
// System.out.println(sb);
}
}
필수적으로 버퍼를 비운 뒤(flush) 닫아줘야한다(close).
방법2. StringBuffer/Builder 이용하기
package step3;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Day10_15552_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
StringBuffer sb = new StringBuffer();
StringTokenizer st;
for (int a = 0; a < N; a++) {
st = new StringTokenizer(br.readLine(), " ");
sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken())).append('\n');
}
br.close();
System.out.println(sb);
}
}
방법3. String.substring() 이용하기 StringTokenizer
package step3;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Day10_15552_3 { //subString
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuffer sb = new StringBuffer();
// StringTokenizer st;
for (int a = 0; a < N; a++) {
String str = br.readLine();
int target = str.indexOf(" ");
int result = Integer.parseInt(str.substring(0,target)) + Integer.parseInt(str.substring(target + 1));
sb.append(result+"\n");
}
br.close();
System.out.print(sb);
}
}
- 스레드 : 하나의 프로세스를 안에서 다양한 작업을 담당하는 최소 실행 단위
ex) 크롬 브라우저(=프로세스)에서 벨로그 작성하기(=스레드1) & 유튜브로 음악 듣기(=스레드2)
Thread
싱글스레드(Single thread) vs 멀티스레드 (Multi thread)
오늘은 싱글 스레드와 멀티 스레드가 무엇인가와 이 둘의 장단점에 대해서 알아보자!!일단, 시작에 앞서 이해를 돕기 위해 이 그림을 봐주길 바란다.=> 싱글 스레드와 멀티 스레드의 차이는 이
velog.io