본문 바로가기

알고리즘/백준알고리즘

[백준알고리즘-JAVA]2739번, 2741번 풀이(구구단, N찍기)

안녕하세요

인포돈 입니다.



백준 알고리즘 2739번, 2741번 풀이입니다. 


* 참고사항
 - 개발환경은 eclipse을 기준으로 작성되었습니다.
 - java언어를 이용하여 문제를 풀이합니다.


백준 2739번(구구단)

 

문제

N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.

 

입력

첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.

 

출력

출력형식과 같게 N*1부터 N*9까지 출력한다.

 

입력 예시

2

출력 예시

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

성공 코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
				Scanner sc = new Scanner(System.in);
				int N = sc.nextInt();
				
				if(N<10&&N>0) {
				for(int mult=1 ; mult <10; mult++) {
					System.out.println(N + " * " + mult + " = " + (N*mult));
				}
				}else {
					System.out.println("1 ~ 9의 숫자를 입력하시오(다시시작)");
				}
			}
		}

 

별로 어려울 것이 없는 문제이다. 해당 문제에서 주의할 것은 *, = 연산자를 출력할 때, 공백을 꼭 넣어주어야 합니다. 코드상 문제는 없지만, 원하는 답이 공백을 추가해야 되기 때문입니다.

 

또한 기본적은 for 반복문에 대해서 복습할 기회였네요

 


 

백준 2741번(N 찍기)

 

문제

자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.

 

출력

첫째 줄부터 N번째 줄 까지 차례대로 출력한다.

 

입력 예시

5

출력 예시

1
2
3
4
5

성공 코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
				Scanner sc = new Scanner(System.in);
				int N = sc.nextInt();
				
				if(N<=100000) {
				for(int mult=1 ; mult <=N; mult++) {
					System.out.println(mult);
				}
				}else {
					System.out.println("100,000보다 작은 정수를 입력하세요(다시시작)");
				}
			}
		}

 

해당 문제도 for문을 복귀해보는 문제입니다. 해당 문제에서 생각해볼 것은 println의 경우 자동으로 줄 바꿈을 해준다는 점이다.

 

*그럼 줄바꿈 안 하는 방법은?

-> 바로 print만 작성하는 것입니다. 아래 코드처럼 말이죠

System.out.print(mult);