태그

#ALGORITHM

반목문 하나로 구구단 만들기

2021년 8월 31일 09:19

33-thumbnail-image

프론트 하는 친구가 머리 아픈 문제가 있다고 해서 풀어봤다
첫 번 째 문제는 10분만에 풀었다는데 두 번 째 문제는 3시간동안 머리 쥐어짜내도 못풀었댄다... 현재 진행중...^^
나는 30분만에 풀어서 친구 엄청 놀려댔다 역시 친구 놀리는게 제일 재밌따...ㅎㅎㅎㅎㅎ

처음엔 머리가 안돌아갔는데 천천히 생각하면 되더라 ㅋㅋㅋㅋ

일단 첫 번 째로 반복문 하나 조건문 하나로 구구단 만들기

int i = 2;
int j = 1;

while ( i <= 9 ) {
    System.out.println(i + " X " + j + " = " + i * j);
    if ( j == 9 ) {
        i++;
        j = 1;
    }
    j++;
}

내 방식은 출력을 하고 조건을 입혀준다
j가 9일 때 한 숫자에 대한 구구단이 완성이 된 상태이기 때문에 j 값을 초기화시키고 i 를 1만큼 증가시킨다
생각해보면 정말 간단한 문제...

두 번 째 반복문 하나로 구구단 만들기

int i = 2;
int j = 0;

while (i <= 9) {
	j++;
	System.out.println(i + " X " + j + " = " + i * j);
	i += j / 9;
	j %= 9;
}

처음은 반복문 안에서 해야 될 것 들을 생각해서 정리해보았다

  1. j 값 증가시키고 초기화 시키기
  2. i 값 증가시키기

1번을 일단 생각해보자면 j 값은 계속 늘어남과 동시에 초기화가 되어야 한다
j를 9로 나눈 나머지는 0~8까지밖에 안나온다
그렇기 때문에 출력하기 전에 j를 1만큼 더해주고 j에다가 계속 9로 나눈 나머지 값을 세팅해준다

ex )

j = 1 일 때 , j % 9 = 1

j = 2 일 때 , j % 9 = 2

j = 3 일 때 , j % 9 = 3

j = 4 일 때 , j % 9 = 4

j = 5 일 때 , j % 9 = 5

j = 6 일 때 , j % 9 = 6

j = 7 일 때 , j % 9 = 7

j = 8 일 때 , j % 9 = 8

j = 9 일 때 , j % 9 = 0

이렇게 하면 j값의 증가와 초기화가 완성된다

2번은 1번을 이해하면 구하기 쉬워진다
j가 9 일 때 나눈 값은 1이 된다 그것을 그냥 i 값에 더해주면 된다
간단하죠~?~?

이제 끝 ~~

Ps. 친구야 고마워... 네 덕에 블로그에 글 올렸어... 고맙고 사랑한다... 개발 공부 열심히 하렴...