(왕초보)JAVA 주사위 만들기에서

조회수 1044회

랜덤으로 주사위 2개 굴리고 그 값의 합을 구하는 법 추가로 n번 굴려서 그 값의 합을 구하는 법 풀어보려고 하는데 웹서핑 없이 해보려니까 결국 못하고있어요ㅜㅜ while문을 쓰는게 가장 효율적이겠죠???

1 답변

  • 숙제는 스스로 해보시고 잘 모르겠다 하는 부분을 질문을 하세요.

    자바 8 이상부터 함수형 언어를 사용하는 느낌으로 작성할 수 있습니다.

    • jshell 은 9부터 사용할 수 있습니다.

    아래의 코드는 1부터 6사이의 숫자중 10개를 랜덤하게 생성하고 그것들을 모두 더하는 코드입니다. 주사위가 2개니까 두번 sum한 결과를 더 했습니다.

    jshell> import java.util.Random;
    
    jshell> Random r = new Random();
    r ==> java.util.Random@14acaea5
    
    jshell> r.ints(1, 7).limit(10).sum() + r.ints(1, 7).limit(10).sum()
    $3 ==> 81
    
    jshell> r.ints(1, 7).limit(10).sum() + r.ints(1, 7).limit(10).sum()
    $4 ==> 62
    
    jshell> r.ints(1, 7).limit(10).sum() + r.ints(1, 7).limit(10).sum()
    $5 ==> 72
    
    jshell> r.ints(1, 7).limit(10).toArray()
    $6 ==> int[10] { 1, 2, 6, 1, 6, 6, 5, 3, 4, 1 }
    
    

    주사위를 동시에 두개 던지는 느낌이라면...

    아래의 코드는 동시에 숫자 두개를 얻어 더하는 것을 10번 반복합니다.

    jshell> import java.util.Random;
    jshell> import java.util.stream.IntStream;
    jshell> r.ints(1, 7).parallel().limit(2).toArray()
    $21 ==> int[2] { 5, 5 }
    
    jshell> int totalSum = 0;
    jshell> IntStream.rangeClosed(1, 10).forEach(i->totalSum += r.ints(1, 7).parallel().limit(2).sum())
    jshell> totalSum
    totalSum ==> 76
    
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)