PC/UVa ID : 110108/10142 사설 개인적으로 책에 적혀있는 문제가 이해가 되지 않았다, 도데체 무슨 말을 하는지 몰라, 친구(박형준)과 토론을 하며 문제를 생각했고, 형준이가 문제에 대해서 이해하여, 여기에 정리하게 된다. 답지를 보고, 형준이가 말한 문제가 올바른지 검증을 했으므로, 이 문제가 100% 정확하다. 책의 문제가 이해가 되지 않아, 검색하다 이 블로그를 찾게 된 사람들에게 도움이 되었으면 한다. 개요 호주식 투표 제도를 구현하는 문제입니다. 호주식 투표 제도는 다음과 같은 알고리즘에 따라 후보자가 당선됩니다. 투표권자는 모든 후보자에게 순위를 메겨 투표를 합니다. 이때 1순위 후보자만을 집계하여, 과반수 이상 표를 얻은 사람이 있다면, 당선을 시킵니다. 만약 당선자가 없다면..
책 정리/Programming Challenges : 알고리즘 트래이닝 북 검색 결과
PC/UVa ID : 110107/10196 개요 체스판에서 킹이 상대방의 수에 의해서 잡힐 수 있다면, 체크 상태를 알려 주는 일을 하는 것이다. 체스를 할 줄 모르면 뭐, 체스 룰부터 아는게 좋다. 나같은 경우 장기 룰을 알고 있기 때문에 장기와 빗대서 말하겠다. 폰(p) : 한번에 앞으로 한칸 씩 앞으로 갈 수 있으나, 상대 패를 먹을 때는 앞쪽 대각선 1칸 범위에서만 막을 수 있다. 마지막 폰은 뒤로 갈 수 없으며, 뒤로 가서 먹을 수도 없다. 나이트(n) : 장기의 馬 같은 움직임을 가진 녀석인데, 주변 장애물에 상관없이 공격 할 수 있다. 비숍(b) : 대각선 방향으로 거리 제약 없이 이동하면서 상대 패를 먹을 수 있다. 록(r) : 장기의 車 와 같은 움직임을 가진 녀석이다. 퀸(q) : 비..
PC/UVa ID : 110106/10033 개요 어떤 컴퓨터에 열 개의 레지스터와 1,000워드 분량의 램이 있다. 각 레지스터 또는 램 위치에는 0 이상 999이하의 세 자리 정수가 저장된다. 명령어는 세자리 정수로 인코딩되며 램에 저장된다. 인코딩은 다음과 같다. 100 : 종료 2dn : d 레지스터를 n으로 설정(0 이상 9 이하) 3dn : d 레지스터를 n 더함 4dn : d 레지스터를 n 곱함 5ds : d 레지스터를 s 레지스터의 값으로 설정 6ds : s 레지스터의 값을 d 레지스터에 더함 7ds : d 레지스터에 s 레지스터의 값을 곱함 8da : d 레지스터를 a 레지스터에 저장된 주소의 램에 들어 있는 값으로 설정 9sa : a 레지스터에 저장된 주소의 램에 s 레지스터의 값을 대..
개요 이번 문제는 그래픽 편집기를 만들어 보는 것이다. 너무 다행이게도, 텍스트로 9개의 기능만 구현하면 된다. 이것을 구현하는 것은 커맨드 라인형 인터페이스, 그래픽 편집 기능을 생각해보라는 데에 목적을 두고 있는 것 같다. 본문 그래픽 편집기를 만드는 규칙은 이러하다. 1. 입력은 한 줄에 하나씩의 편집기 명령으로 구성된다. 2. 각 명령은 줄 맨 앞에 있는 대문자 한개로 표현된다. 3. 매개변수가 필요한 경우에는 그 명령과 같은 줄에 스페이스로 분리되어 입력 한다. 4. 픽셀은 1 ~ M 열과, 1 ~ N 행 으로 표현된다. 5. 책에선 유효 범위를 250 픽셀 안쪽으로 정하지만 난 무시하겠다.(옆집 강아지의 이름을 기억해 주지 않아!) 6. 좌측 상단을 1, 1 으로 정하고, 이곳을 원점으로 정한..
PC/UVa ID : 110104/706, 인기도 : A, 성공률 : 보통, 레벨 : 1 { 한 친구가 방금 새 컴퓨터를 샀다. 그 친구가 지금까지 샀던 가장 강력한 컴퓨터는 공학용 전자 계산기였다. 그런데 그 친구는 새 컴퓨터의 모니터보다 공학용 계산기에 있는 LCD 디스플레이가 더 좋다며 크게 실망하고 말았다. 그 친구를 만족시킬 수 있도록 숫자를 LCD 디스플레이 방식으로 출력하는 프로그램을 만들어 보자. 입력 입력 파일은 여러 줄로 구성되며 표시될 각각의 숫자마다 한 줄씩 입력된다. 각 줄에는 s와 n이라는 두 개의 정수가 들어있으며, n은 출력될 숫자(0 - -- | | | | -- - ------------------------------------------- t[1] = Make_Hyphe..
PC/UVa ID : 110103/10137, 인기도 : B, 성공률 : 보통, 레벨 : 1 친구들 4명이서 음식점에 갔다. 그리고 음식을 시킨다. 난 짜장면, 난 짬뽕, 난 탕수육, 난 깐풍기, 이렇게 각자 원하는 것을 시켰다. 그리고 서로 사이 좋게 나누어 먹었다. 식사를 끝맞친 친구들은 계산을 하기 위해서 계산대 앞에 갔다. 계산대를 보던 사람이 짜장면 2500원, 짬뽕 3000원, 탕수육 6000원, 깐풍기 8000원, 이렇게 나왔다고 했다. 친구들은 한 사람에게 모든 돈을 주고 계산하라고 했다. 계산 후, 각자 집으로 돌아갔다. 그리고 학교에서 만난 이 친구들은 어제 맛있게 서로 나누어 먹었는데, 각자 평등하게 돈을 내는게 좋겠다고 이야기를 하였다. 각자 낸 금액에서 주거니 받거니를 계산하니, ..
최근댓글