본문 바로가기

알고리즘

(2)
[Java] 369 게임 알고리즘 다들 한 번쯤 369 게임 해보셨죠? 369 게임의 규칙은 다음과 같습니다. 여러명의 사람이 1부터 숫자를 하나씩 말하는데, 3과 6, 9가 들어가는 숫자는 말하는 대신 박수를 쳐야 합니다. 이때 3과 6, 9가 들어가는 횟수만큼 박수를 쳐야 합니다. 예를 들면 36은 박수를 두 번 쳐야 합니다. 이 규칙대로, 자바를 이용해서 369 게임을 구현해보겠습니다. 한 가지 제한사항과 함게 369 게임의 규칙을 코드로 변환하겠습니다. 1. 반복문을 이용해 숫자를 1부터 99까지 증가시킵니다. 2. 숫자를 3으로 나눈 나머지가 0일때 "박수"를 출력합니다. 3. 숫자를 10으로 나눈 값을 3으로 나눈 나머지가 0일대 "박수를 출력합니다. 이를 코드로 변환하면 아래와 같습니다. for (int i = 1; i < ..
[Java] 윤년 계산하는 알고리즘(feat. 백준 2753) 지구가 태양을 한 번 공전하면 1년이 흐릅니다. 이 시간을 정확히 말하자면 365일 5시간 48분 46초가 걸립니다. 하지만 우리는 대충 퉁쳐서 365일이라고 생각하기로 했습니다. 그런데 남아있는 5시간 48분 46초는 어디로 간걸까요? 지구가 차곡차곡 적립해서 4년에 한 번씩 2월을 하루 늘려줍니다. 그래서 4년마다 한 번 2월이 29일이 되는 해가 찾아오고, 이를 윤년이라고 부릅니다. 그런데 아직도 의문이 남아있습니다. 4년에 한 번씩 2월을 하루 늘리면 11분 정도가 초과되게 됩니다. 초과된 11분은 131년이 지나면 하루가 됩니다. 이걸 다시 모으면 대략 400년에 3일이 됩니다. 그래서 100년마다 한 번씩 윤년을 없애고, 400년마다 다시 하루를 추가해 윤년을 둡니다. 좀 복잡하죠? 이걸 정리..