안녕하세요 길벗수험서 운영팀입니다.
자.. 우리는 좀더 컴퓨터적 사고를 지녀야 합니다.
문제의 알고리즘은 6면 주사위를 굴리는 알고리즘을 구현하라고 하였습니다.
하지만 실제 컴퓨터 내에서 6면 주사위를 구현할 필요는 없습니다.
rand라는 무작위 수를 뽑아주는 함수를 이용하여 나오는 수치들을 6등분 하는 것입니다.
rand()%6 + 1
이것이 그 과정이죠.
단순하게 %6을 사용하여 6등분한다면 0, 1, 2, 3, 4, 5 라는 수치를 반환하게 될 것입니다.
이것을 사용자가 편하게 +1을 해주어 1, 2, 3, 4, 5, 6으로 바꿔주는 것일 뿐이죠.
저것이 실제 주사위 눈이 되는 것은 아닙니다.
단순히 무작위의 수를 6등분한 순서일 뿐이죠.
나머지로 0, 1, 2, 3, 4, 5 가 나올 무작위 수치들은 일의자리 수부터 몇십만 몇백만 수치의 수를 단순히 구분하여 나눠준 것이라는 것을 기억하세요.
때문에 이를 배열에 저장할 때 주사위 눈(프로그램 개발자가 아닌 사용자의 편의상)-1을 한 배열에 저장한 후 이후 출력할 때 +1을 해서 출력해주는 것입니다.
행복한 하루되세요 :)
-
관리자2019-04-12 11:19:49
안녕하세요 길벗수험서 운영팀입니다.
자.. 우리는 좀더 컴퓨터적 사고를 지녀야 합니다.
문제의 알고리즘은 6면 주사위를 굴리는 알고리즘을 구현하라고 하였습니다.
하지만 실제 컴퓨터 내에서 6면 주사위를 구현할 필요는 없습니다.
rand라는 무작위 수를 뽑아주는 함수를 이용하여 나오는 수치들을 6등분 하는 것입니다.
rand()%6 + 1
이것이 그 과정이죠.
단순하게 %6을 사용하여 6등분한다면 0, 1, 2, 3, 4, 5 라는 수치를 반환하게 될 것입니다.
이것을 사용자가 편하게 +1을 해주어 1, 2, 3, 4, 5, 6으로 바꿔주는 것일 뿐이죠.
저것이 실제 주사위 눈이 되는 것은 아닙니다.
단순히 무작위의 수를 6등분한 순서일 뿐이죠.
나머지로 0, 1, 2, 3, 4, 5 가 나올 무작위 수치들은 일의자리 수부터 몇십만 몇백만 수치의 수를 단순히 구분하여 나눠준 것이라는 것을 기억하세요.
때문에 이를 배열에 저장할 때 주사위 눈(프로그램 개발자가 아닌 사용자의 편의상)-1을 한 배열에 저장한 후 이후 출력할 때 +1을 해서 출력해주는 것입니다.
행복한 하루되세요 :)