PC/UVa ID : 110101/100, 인기도 : A, 성공률 : 낮음, 레벨 : 1 반복 사이클의 길이를 구하는 문제이다. 반복 사이클의 길이는 어떤 정수 n 이 있을 때, n으로 시작해 n이 짝수면 2로 나누고, 홀수면 3을 곱한 다음 1을 더한다. 이렇게 해서 새로 만들어진 숫자 n 이 1 이 될 때까지 같은 작업을 계속 반복한다. 이 반복이 1번당 길이 1 이라고 친다. 예를 들어 n == 22 라면, 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 가 만들어 지고, 16 사이클로 길이가 나온다. 입력 정수 두개( i, j )를 받는다. 이 두 정수는 1 ~ 1,000,000 사이의 숫자여야 한다. 1 ~ 1,000,000 까지의 수자는 모두 n == 1 로 만들어..
전체 글 검색 결과
해당 책을 구매한지 1달이나 지났는데 지금에서야 꺼내 문제를 풀고 있다. 뭐 하나씩 풀어 보면 도움이 되겠지~ 문득 이 문제들을 보고, 루아로 다 풀어 봐볼까? 란 생각이 들었다. 여러가지 의미로, 이 책을 통해서, if 문을 어떻게 사용해야 되는지 배울 거 같은 느낌이 든다. 난 사실 if문이 제일 힘들다. "무엇을 평가해야 하지?" 란 질문에 답을 잘 못하기 때문이다. 자, 시작해 볼까~ .
갑자기 쓰레드에 관련된 이야기가 나와서, 어리 둥절했었다. 이번 항목은 쓰레드간의 안전한 공유를 위한 코딩의 시기와 방식을 어떻게 결정하는지에 대해서 이야기 한다. 이번 주제에 대해서 이야기 하기전에 비유가 되는 한가지 이야기를 생각해 봤다. 어느 마을에 의자를 아주 잘 만드는 사람이 있었다. 그 사람은 구현자이다. 구현자는 의자를 만들때 아주 깔끔하고 튼튼하게 만들기로 유명하다. 구현자가 만든 의자는 호출자에 의해 운반되어 시장에 팔린다. 사람들은 호출자가 운반한 의자가 구현자가 만든 것임을 알고 있기에 의심치 않고 구매를 한다. 어느날 호출자는 다른 시장에도 의자를 팔기 위해서 구현자에게 의자를 더 만들어 달라고 요청을 했고, 구현자는 사람들을 고용하여 의자를 더 만들었다. 다음날 호출자는 일상대로 ..
당신은 은행에 가서 현금 6천만원을 만원권으로 인출하여, 집으로 가려고 한다. 그런데 은행에 나왔을 때 그 6천만원은 모든 사람들에게 보이게 될 뿐만 아니라, 주위에서 이상한 눈초리로 볼 수도 있을 거라고 생각하니, 어떤 생각을 강구해야 될것 같다. 당신이라면 이 현금 6천만원을 어떻게 집까지 가져가겠는가? 나라면, 꼭꼭 숨키거나, 친구들을 불러서 같이 가져가거나, 승용차를 대기시키는 등, 다른 사람이 최대한 적게 볼 수 있는 방법을 사용 할 것이다. C++ 에서 정보라 불릴 수 있는 것이 바로 "돈"이라 할 수 있다. 정보의 가치가 크면 클 수록 더욱 비싸진다. 왜냐하면 이 정보는 아주 좋기 때문에, 많은 곳에서 사용 하려고 달려 들기 때문이다. 당신이라면 이 정보를 어떻게 가져와 이용할 것인가? 이상..
이런 정석에는 항상 "왜!?" 라는 것이 따라 다니는데... "전역 데이터"를 왜 최소화 해야 하는가? 전역 데이터는, 전역 네임스페이스에 있는 데이터로써, 어디에서건 접근 할 수 있다. 이 말만 들으면, 아주 좋은 자리에 줄을 선 데이터 이다. 하지만 이 "어디에서건"이 매우 복잡한 상태를 초래하게 된다. 자리가 매우 좋으니, 어디에서건 값을 수정 할 수 있게 된다. 그래서 그 값이 왜 어떻게 언제 수정되었는지 알기가 매우 힘들어 진다. 이런 것이 "아느니 모르니만 못하다" 라는 소리를 듣는 경우이다. 그렇다면, "공유 데이터" 는 무엇을 말하는 것일까? 바로 클래스의 멤버 데이터를 말한다. 이것은 또 왜 문제인가? 바로 전역 데이터 처럼 쓰여지니 문제가 똑같이 된다. 경험으로는. private 멤버 ..
최근댓글