본문 바로가기

Projects/백준 문제

백준 2742번 자바 문제 for문과 while문의 활용

반응형

동일하게 BufferedReader와 BufferedWriter를 사용해서 문제를 풀어봤다.

 

문제 자체는 이전 문제와 시작점과 종료지점만 반대로 지정해주면 되는 거라 쉬웠고,

 

다만, while문을 사용해보지 않아서 while문을 활용해서도 다시 풀어보았다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	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());
		
		br.close();
		
		for (int i = N; i >= 1; i--) {
			
			bw.write(i + "\n");
		
			
		}
		bw.flush();
		bw.close();
	}

}

 

 

while문의 경우, while문이 시작되기 전에 i를 미리 정의내려줘야 하는 점이 다르고,

i-- 먼저 나오는 것이 아니라, bw.write가 먼저 나오도록 해야, N부터 시작할 수 있다.

안그러면 n-1부터 출력되니까. 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	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());
		
		br.close();
		
		int i = N;
		
		while (i >= 1) {
			bw.write(i + "\n");
			i--;
			
		
			
		}
		bw.flush();
		bw.close();
	}

}
반응형