본문 바로가기

study/baekJun

[백준/JAVA/for문/배열]백준2741,2742 N찍기 그리고 기찍N

 

출처 : https://www.acmicpc.net/problem/2741

이번 문제는 N을 입력해서 1부터 N까지 차례대로 출력해주는 문제이다.

입력과 출력은 bufferedReader/writer가 익숙해지도록

별거 아닌 문제에도 bufferedReader/Writer를 사용할 것이다.

 

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

public class qn2741{
   public static void main(String[] args) throws IOException{
      BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //콘솔에서 입력받을 경우
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      
      int N = Integer.parseInt(bf.readLine().trim());
      int array [] = new int [N];
      
      for(int i=0;i<N;i++){
         array[i] = i+1;
      }
      
      for(int i=0 ;i<N;i++){
         bw.write(array[i]+"\n");
      }
      bw.flush();
      bf.close();
      bw.close();
   }
}

코드를 보면,

먼저 자연수 N을 입력한다.

그런 다음 배열을 선언&생성을 해주는 데

java에서 배열을 만드는 방법은

1.선언 2. 생성이다.

선언은 int array [];

생성은 array = new int [5];

둘 다 동시에 하려면

int array[] = new int [5];

별 거 아니었지만 오랜만이라 조금 헤맸었다 ㅎㅎ;

배열을 생성해 줬으면 초기화를 시켜줘야하는데

for문을 사용해서  배열에 차례대로 데이터를 삽입하였다.

또 다시 for문을 사용하여 데이터를 출력해주었다.

데이터를 삽입하고 출력하는데 총 두개의 for문을 사용하였다!

이 문제를 끝내고 그 다음으로 넘어가는데 문제이름이 [기찍N]이었다

이게 뭔가 싶었더니 

출처 : https://www.acmicpc.net/problem/2742

이전 문제에서 거꾸로만 출력하는 문제였고

입력하는 부분까지는 똑같이 해주었지만, 출력하는 부분은

N부터 ,0보다 크거나 같을 때까지, 감소하는 for문을 사용하였다.

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

public class qn2742{
   public static void main(String[] args) throws IOException{
      BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //콘솔에서 입력받을 경우
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      
      int N = Integer.parseInt(bf.readLine().trim());
      int array [] = new int [N];
      
      for(int i=0;i<N;i++){
         array[i] = i+1;
      }
      
      for(int i=N-1;i>=0;i--){
         bw.write(array[i]+"\n");
      }
      bw.flush();
      bf.close();
      bw.close();
   }
}