이번 for문 연습문제는 간단하다. 100,000보다 작은 수 N이 입력되면 1부터 N까지의 값을 한줄에 하나씩 나타내면된다.
반복을 통해서 한번에 한칸씩 적어내려간다 생각하고 시도하면 된다.
Buffered와scanner 를 사용하는 방법 두 가지를 시도해보았다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
//N찍기
public class Main5 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
if (N<=100000) {
for (int i = 1; i <= N; i++) {
bw.write(i + "\n");
}
}
bw.flush();
bw.close();
br.close();
}
}
|
cs |
먼저 Buffer를 이용하여 푸는 방법이다.
우선 bufferead Reader와 Writer를 입력해준다.
이후 입력값 N을 받을 수 있도록 만들어야 하는데
이는 br.readLine을 사용해주며 String형식으로 입력이되기 때문에 int형식으로 변환시켜주기위해 Integer.parsInt를 사용하여 변환시켜 준다
. 이후 for문을 이용하는데 문제에 입력값이 100,000이하의 값을 입력한다 했기때문에 if 문을 사용하여 N값이 맞게 들어왔나 확인 후 for문을 사용한다.
for문을 통해 1부터 N값까지 출력을 해줄것이디 때문에 for (시작값을 1부터 시작하여 ; N값까지; 1씩 늘어날 수 있도록;) 한다. 이후 실행문 {} 안에 bw.write를사용하여 i값을 찍어준다
. 또한 Buffered는 scanner와 달리 \n을 추가시켜줘야 칸을 넘겨주기때문에 i + \n 으로 나타내 준후 마무리 해주도록 하자.bw.flush(); bw.close(); br.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.util.Scanner;
public class Main5_5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = 0 ;
N =sc.nextInt();
sc.close();
if (N <100_000) {
for (int i = 1; i <= N; i++) {
System.out.println(i);
}
}
}
}
|
cs |
2.scanner를 사용하는 경우
scanner를 생성해준후 입력값N을 만들어준다 (sc.nextInt 사용)
이후 마찬가지고 if문을 통해 입력값이 문제의 출제 범위인 100,000이하인지 확인해준 후 for문을 사용하여
for (시작값을 1부터 시작하여 ; N값까지; 1씩 늘어날 수 있도록;) 한다.
이후 println을 통해 i값을 1부터 N값까지 하나씩 나타내면 된다.
'알고리즘 > 백준(BAEKJOON)' 카테고리의 다른 글
11021/백준/A+B-7/자바/for문 (0) | 2020.08.03 |
---|---|
2742/백준/for문 /자바 (0) | 2020.08.01 |
15552/빠른 A+B/자바/for문 (0) | 2020.07.30 |
8393/ 백준 /합/ for문/자바 (0) | 2020.07.29 |
10950/백준/A+B - 3/자바/java (0) | 2020.07.28 |