목록Expert (19)
시간이 NullNull
정우는 USB 커넥터를 포트에 꽂고 있다. 정확히 꽂기 까지 다음과 같은 과정을 거친다. - 가장 처음 USB를 꽂을 때, p의 확률로 올바른 면으로 USB를꽂은 것이고 , (1 - p)의 확률로는 뒤집어서 USB를 꽂은 것이다. - 만약 올바른 면으로 USB를 꽂으면 q의 확률로 정상적으로 USB가 꽂히고, (1 - q)의 확률로는 꽂히지 않는다. USB가 뒤집어져 있다면 절대로 꽂히지 않는다. - USB를 꽂는 것을 실패하면 USB를 뒤집은 다음 다시 꽂는 것을 시도한다. 이 때, USB를 정확히 i번 뒤집었을 때 USB가 꽂힐 확률을 si 로 나타낸다. 정우는 지금까지 USB를 두 번이나 뒤집어야 USB가 제대로 꽂히는 놀라운 경험을 너무 많이 했고, 이런 상황이 얼마나 많이 일어날 수 있는지 알고..
카드 게임을 좋아하는 승현이는 요즘 블랙잭에 빠져 있다. 잘생긴 승현이와 함께 블랙잭의 규칙을 알아보자! 블랙잭을 처음 시작할 때, 덱에는 2, 3, 4, 5, 6, 7, 8, 9의 가치를 가지는 카드가 각각 4장, 11의 가치를 가지는 카드(Ace) 4장, 10의 가치를 가지는 카드 16장 (Ten, Jack, Queen, King), 총 52장의 카드가 올려져 있다. 지금 승현이는 이미 N장의 카드를 뽑아서 덱에는 52-N장의 카드가 남아 있으며, 승현이는 여기서 카드를 한 장 더 뽑을 지 말지 고민하고 있다. 승현이는 덱에 남아있는 카드 중 하나를 뽑았을 때, "뽑은 모든 카드의 가치의 합이 21보다 크게 만드는 카드의 개수"가 "뽑았을 때 가치의 합을 21 이하로 만드는 카드의 개수"보다 크거나 ..
아기 석찬이는 내년에 초등학교에 입학하지만 아직 알파벳을 떼지 못했다. 석찬이의 부모님은 그런 석찬이를 위해 알파벳을 공부할 수 있는 학습지를 구독하였다. 학습지에는 길이 N의 알파벳 대소문자로만 이루어진 문자열이 주어지는데, 석찬이는 대소문자를 제대로 구분해서 이 문자열을 받아 적어야 한다. 석찬이는 N 개의 문자를 받아 적는 데는 성공했지만, 틀리게 적은 문자들이 몇 개 보인다. 석찬이가 몇 개의 문자를 올바르게 받아 적었는지 세어보자. 그대로 비교를 해주면 끝난다! 사실 블로그 포스팅을 위해서 작성하는 것이지만 내 양심이 찔릴 정도로 너무 쉽다.... 아무도 이 글을 봐주지 않을 것이다. 하하하하하하 단 정말 조금이나마 효율?적으로 하기 위해 char로 비교하였다. import java..
진수는 어린 동욱이에게 숫자 공부를 시키고 있다. 진수는 숫자를 여러 번 말한다. 그러면 동욱이는 진수가 부르는 숫자를 공책에 적거나 지운다. 숫자를 적을 때는 공책에 그 숫자가 적혀 있지 않을 때이고, 숫자를 지울 때는 공책에 그 숫자가 적혀 있을 때이다. 처음 공책에는 어떤 숫자도 적혀 있지 않다고 할 때, 마지막에 공책에 적힌 숫자의 개수를 구하는 프로그램을 작성하라. ps. 왜 저렇게 비효율적으로 공부시킬까ㅠㅠ 불쌍한 동욱이 가장 쉽게 생각했을때 그대로 시키는 대로 반복하면 된다. 처음에 쓰여지지 않은 수 = false 이후 쓰여지면 true 다시 진수가 숫자 부르면 false 다시 진수가 숫자 부르면 true 전체 코드는 아래와 같다. import java.io.BufferedReader; im..
재현이는 재민이를 도와서 동아리 장부를 관리하고 있다. 재현이는 영수증을 모아서 동아리의 지출 금액을 세고 있고, 재민이는 재현이가 부르는 액수를 순서대로 적고 있다. 재현이는 가끔 잘못된 수를 부르는 실수를 하는데, 이 때마다 0을 외쳐서, 가장 최근에 재민이가 쓰고 지우지 않았던 수를 지우게 시킨다. 재현이가 모든 수를 부른 후 재민이가 받아 적은 수의 합은 무엇일까? ps. 정말 불쌍하게도 쓰고 지우고 쓰고 지우고를 반복하는 재민이를 위로해줍시다.... 이 문제의 경우 그냥 시키는 대로 코드를 작성하면 된다. 다만 최근에 쓴 것을 지우게 되는데 이때 가장 좋은 것이 stack이기 때문에 stack을 활용하여 코드를 작성해 보았다. 들어오는 수를 다 stack에 넣다가 0이 들어오면 pop을 해주면되..