본문 바로가기

반응형

알고리즘 트레이닝

(5)
Dynamo로 풀어보자-백준 25304번(영수증) 두 가지 소스에서 오는 데이터의 정합성을 판단할 때 프로그램을 만들 때, 하나의 소스를 이리저리 조작해가며 알고리즘을 만들기도 하지만, 두가지 소스에서 파생된 결과를 비교해서 일치 여부를 파악하는 작업이 필요할 때도 있습니다. 이번 백준 문제가 그런 상황에 잘 맞는 예제가 되는 것 같습니다. 사실 풀이 자체는 전혀 복잡하지 않습니다. 문제 및 입력 조건 25304번: 영수증 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 다이나모 풀이 풀이 완료된 노드 그래프는 아래와 같습니다. 입력부 코드 블럭에 입력된 첫째 값이 영..
Dynamo로 풀어보자-백준 2480번(주사위 세개) 입력값의 상황에 따라 입력값이 어떤 컨디션인지에 따라 다른 논리를 적용하여 계산을 해야 하는 상황이 있습니다. 덩치 큰 솔루션이나 라이브러리를 구상할 때는 객체지향형 프로그래밍 패러다임 하에서는 입력된 값을 분별하는 인터페이스를 따로 디자인하는 것이 정돈되고 깔끔한 방법이겠지만, 다이나모에서는 구현할 수 없고, 또한 (반쪽짜리이지만) 함수형 프로그래밍 패러다임과 유사하게 동작하는 다이나모에서는 굳이 구현할 이유도 없습니다. 멀티메소드를 구현해서 문제 풀이하는 방법도 있겠는데, 여기서는 단순히 딕셔너리를 활용하여 멀티메소드를 반쯤 흉내내는 방식의 풀이를 보이겠습니다. (제대로 멀티메소드를 구현하는 풀이는 나중에 따로 포스팅 하겠습니다.) 문제 및 입력 조건 2480번: 주사위 세개 다이나모 풀이 전체의 풀..
Dynamo로 풀어보자-백준 14681번(사분면 고르기) 프로그래밍에서 좌표평면을 어떻게 다룰까? 좌표평면이란 걸 수학 배우면서 많이 접했겠지만, 막상 프로그래밍에서 다루려면, API를 통하지 않고는 막막하게 느껴집니다. 간단하게 어떤 점이 몇 사분면에 위치하는지 판별할 수 있는 알고리즘을 찾아봅시다. 문제 및 입력 조건 14681번: 사분면 고르기 다이나모 풀이 전체 풀이의 모습은 아래입니다. 입력부 먼저 사분면 판별의 대상이 되는 좌표를 x,y의 순서로 코드 블럭으로 입력 받습니다. 알고리즘1 - 둘 다 양수일 때, 하나만 양수일 때? 제1사분면, 2사분면, 3사분면 및 4사분면의 정의를 이미 알고 계시죠? x좌표와 y좌표가 둘 다 양수라면 제1사분면, x좌표는 음수, y좌표는 양수라면 제2사분면, x좌표가 음수, y좌표도 음수라면 제3사분면, x좌표가 양..
Dynamo로 풀어보자-백준 9498번(시험 성적) 시험점수 구간 판별? 시험 점수라는 정수 형태의 스펙트럼을 구간 별로 나누어 판별하는 로직이 필요한 문제입니다. 처음에 막막할 수 있지만, 다이나모 로도 굉장히 간단한 구성으로 해결되는 문제입니다. 문제 및 입력 조건 9498번: 시험 성적 다이나모 풀이 전체 풀이는 하기와 같습니다. 입력부 먼저 성적을 판별할 학생의 점수를 코드 블럭으로 입력 받게 됩니다. 백준 사이트에 있는 예시 입력 이외에도, 여러가지 점수를 기입하여 테스트 케이스를 만들어 둡니다. 점수 판별 로직 - 기준값들과의 비교 문제의 설명에는 “90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F” 라고 되어있습니다. 잘 생각해보면 점수 스펙트럼을 구분하는 기준값들이 90점, 80..
Dynamo로 풀어보자-백준 3003번(킹, 퀸, 룩, 비숍, 나이트, 폰) 다이나모로도 알고리즘 문제들을? 다이나모를 사용해서 알고리즘 문제를 풀 수 있다는 사실을 보이고 싶었습니다. 비주얼 프로그래밍 툴이기는 하지만, 꽤 복잡한 수준의 논리 구성을 구현할 수 있는데도, 아직도 사용자는 그리 많지 않은 것 같습니다. (레빗을 사용하는 인원 풀 중에서도 일부만 사용하고 있으니 사용자가 적은 것은 사실 당연합니다. 하지만 다이나모 샌드박스를 고려하면, 레빗을 사용하지 않는 사람이라도 다이나모를 엑셀 등과 연계하여 얼마든지 유용하게 사용할 수 있습니다. 비주얼 프로그래밍 툴이라는 특성상, 초기 프로그램 스케치에 탁월한 능력을 보여줍니다.) 앞으로는 쉬운 난이도부터 차근차근 어려운 난이도 까지 백준 온라인 저지 사이트의 문제들을 다이나모로 풀어보는 게시물 시리즈를 종종 올려볼까 합니다..

반응형