풀이
`Scanner`와 `for문`을 활용해 문제를 풀었다.
`Scanner`를 통해 `N값`을 입력받아 `예제 출력`과 똑같은 결과를 뽑아내면 된다.
`for문`을 사용하지 않고도 문제를 풀 수 있는지 궁금해 풀어봤다.
컨트롤 c 컨트롤 v를 활용하면 그렇게 오래 걸리지도 않지만 솔직히 굉장히 귀찮은 방법이다.
코드 길이가 더 긴 아래 제출답안이 바로 이 노가다 풀이법인데 소모시간은 더 짧다.
그럼 이렇게 해도 상관없는거네? 싶은 생각이 잠깐 들었지만 그래도 이건 아닌 것 같다.
이 문제 하나만 맞추는 게 목적이라면 사실 별 상관없지만, 유지보수 측면에서 이 코드는 질이 나쁘다고 생각한다.
처음에는 구구단을 만들고 싶었지만 만들다 보니 백 단이 만들고 싶어 졌을 때 이 방법은 너무나도 비효율적이다.
출력문을 일일이 백개나 입력하고 수정해야 하기 때문이다.
그래서 `for문`을 사용해서 문제를 다시 풀었다.
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.close();
for(int i=1 ; i<=9 ; i++){
System.out.println(N+" "+"*"+" "+i+" "+"="+" "+N*i);
}
}
}
이 경우 일단 보기에도 깔끔하고 갑자기 마음이 변해 백단을 만들고 싶을 경우 for문의 조건식을 조금만 바꿔줘도 돼서 수정이 매우 용이하다.
느낀점
언젠가 이런 말을 들은 적이 있다.
빌 게이츠가 했다는 것 같은데, 무슨 일을 가장 빨리 끝내는 방법을 알고 싶다면 게으른 사람에게 일을 주면 된다라는 말이었다.
무슨 소리인가 하면 게으른 사람은 항상 일을 빨리 끝내기 위한 효율적인 방법을 만들어내려고 노력한다는 것이다.
그러한 성질이야말로 프로그래밍과 상당히 잘 맞는 게 아닌가 하는 생각이 든다.
게으른 사람은 고생하지 않기 위해 노력한다.
노력한다는 점에서 벌써 게으르지 않은 게 아닌가? 할 수도 있지만 게으른 사람도 할 때는 한다.
게으른 사람이 정말 아무것도 하지 않았다면 게으른 생명체들은 벌써 다 멸종돼버렸을 것이다.
그러니까 내 말은 정말 똑똑하고 게으른 사람들 덕분에 우리 생활이 편리해진 부분이 상당히 많지 않을까 하는 생각이 들어서 그분들께 고마운 마음이 들었다는 것이다.
나도 열심히 머리를 써야겠다.
'JAVA > 백준(BAEK JOON)' 카테고리의 다른 글
[백준] 1085번: 직사각형에서 탈출 자바(JAVA) (0) | 2023.03.06 |
---|---|
[백준] 2884번: 알람 시계 자바(JAVA) (0) | 2022.06.15 |
[백준] 2558번 곱셈 자바(JAVA) (0) | 2022.06.13 |
[백준] 2439번 별 찍기 - 2 자바(JAVA) (0) | 2022.06.12 |
[백준] 2438번 별 찍기 - 1 자바(JAVA) (0) | 2022.06.11 |