본문 바로가기

반응형

전체 글

(77)
가루 삼겹살에 이은 가루 데이터(by Python-Pandas) 침착맨의 가루삽겹살, 사실은 코딩에도 있었다? 침착맨이라는 스트리머가 어느 날 재미로 사업 구상 아이디어를 하나 냈습니다. 이름 하여 가루 삼겹살입니다. 잘게 자른 고기를 먹으면 배가 쉽게 차고 먹는 양 절제도 되니까, 아예 “극단적으로 가루로 갈아서 가루 삼겹살을 파는 점포를 사업화 하는 게 어떠냐” 라는 아이디어였죠. 실현 가능성을 논 외로 하면, 굉장히 우습고 재미있는 아이디어여서 생각에 많이 남았는데, 생각해보니 코딩에서는 저 개념이 굉장히 자주 쓰이고 있는 개념이라는 생각이 들었습니다. 간 고기를 덩어리 고기에 다시 묻혀서 굽고, 그렇게 만든 고기를 다시 갈아낸 뒤에 떡갈비로 다시 뭉쳐서 먹는 식의 뇌절 아이디어였지만, 프로그래밍에서는 이런 생각들이 절대 뇌절이 아니랍니다. 데이터를 갈아보자 h..
Dynamo로 풀어보자-백준 25304번(영수증) 두 가지 소스에서 오는 데이터의 정합성을 판단할 때 프로그램을 만들 때, 하나의 소스를 이리저리 조작해가며 알고리즘을 만들기도 하지만, 두가지 소스에서 파생된 결과를 비교해서 일치 여부를 파악하는 작업이 필요할 때도 있습니다. 이번 백준 문제가 그런 상황에 잘 맞는 예제가 되는 것 같습니다. 사실 풀이 자체는 전혀 복잡하지 않습니다. 문제 및 입력 조건 25304번: 영수증 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 다이나모 풀이 풀이 완료된 노드 그래프는 아래와 같습니다. 입력부 코드 블럭에 입력된 첫째 값이 영..
파이썬, 과연 엑셀보다 어려운가? 도입: 들어가기 앞서 누군가 자신의 문제를 컴퓨터로 해결하고자 한다면, 그 문제 해결의 흐름을 도식화 했을 때 과거에는 다음과 같았을 겁니다. 쉽게 말하면 문제를 가지고 있는 user가 직접 컴퓨터에 명령 내릴 수단을 가지고 있지 않으니, 컴퓨터 코딩에 특화된 사람들이 1, 2, 3 단계를 수행해서 Solution Software를 개발한 뒤에 user 에게 배포하는 식이었죠. 그런데 요즘은 다른 방식도 추가되었습니다. 위 그림처럼 기존의 소프트웨어 개발 영역도 여전히 존재하지만, 코딩을 통해 자신만의 즉석 솔루션을 개발해서 업무나 연구, 작업 등에 자동화, 효율화를 추구하게 되는 방향도 생겨나게 된 것이죠. 이걸 저 혼자 Personal Scripting Area라고 부르는데, 이 영역에 속하는 툴들이..
Dynamo로 풀어보자-백준 2480번(주사위 세개) 입력값의 상황에 따라 입력값이 어떤 컨디션인지에 따라 다른 논리를 적용하여 계산을 해야 하는 상황이 있습니다. 덩치 큰 솔루션이나 라이브러리를 구상할 때는 객체지향형 프로그래밍 패러다임 하에서는 입력된 값을 분별하는 인터페이스를 따로 디자인하는 것이 정돈되고 깔끔한 방법이겠지만, 다이나모에서는 구현할 수 없고, 또한 (반쪽짜리이지만) 함수형 프로그래밍 패러다임과 유사하게 동작하는 다이나모에서는 굳이 구현할 이유도 없습니다. 멀티메소드를 구현해서 문제 풀이하는 방법도 있겠는데, 여기서는 단순히 딕셔너리를 활용하여 멀티메소드를 반쯤 흉내내는 방식의 풀이를 보이겠습니다. (제대로 멀티메소드를 구현하는 풀이는 나중에 따로 포스팅 하겠습니다.) 문제 및 입력 조건 2480번: 주사위 세개 다이나모 풀이 전체의 풀..
re-frame your ClojureScript applications - Shaun Mahood(Clojure conj 2016 발표 번역-개인공부용) CLJS의 Re-frame 프레임워크 요즘 관심이 생겨서 개인적으로 Clojure 컨퍼런스 자료들을 유튜브에서 많이 찾아보고 있는데, 영어의 한계 때문인지 개략적인 흐름을 파악하는 정도로 그쳐서, 발표마다 한 문장씩 해석하면서 공부하는 걸 시작했습니다. 파파고와 구글 번역의 도움을 받아서 초벌 번역을 한 후에, 고유명사 오류를 고치고, 문장 구성을 조금 다듬는 수준에서 번역한 스크립트를 올립니다. 혹시 오번역이 있다면 의견남겨주시기 바랍니다. 공부하는 입장에서 기록 삼아 올리는 것이기 때문에 피드백이 오히려 절실합니다. 번역 수정 및 관련 정보 주석 작업도 계속 업데이트 할 예정입니다. 클로저 컨퍼런스 요약 혹은 번역은 앞으로도 종종 올릴 것 같습니다. re-frame your ClojureScript ..
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번(킹, 퀸, 룩, 비숍, 나이트, 폰) 다이나모로도 알고리즘 문제들을? 다이나모를 사용해서 알고리즘 문제를 풀 수 있다는 사실을 보이고 싶었습니다. 비주얼 프로그래밍 툴이기는 하지만, 꽤 복잡한 수준의 논리 구성을 구현할 수 있는데도, 아직도 사용자는 그리 많지 않은 것 같습니다. (레빗을 사용하는 인원 풀 중에서도 일부만 사용하고 있으니 사용자가 적은 것은 사실 당연합니다. 하지만 다이나모 샌드박스를 고려하면, 레빗을 사용하지 않는 사람이라도 다이나모를 엑셀 등과 연계하여 얼마든지 유용하게 사용할 수 있습니다. 비주얼 프로그래밍 툴이라는 특성상, 초기 프로그램 스케치에 탁월한 능력을 보여줍니다.) 앞으로는 쉬운 난이도부터 차근차근 어려운 난이도 까지 백준 온라인 저지 사이트의 문제들을 다이나모로 풀어보는 게시물 시리즈를 종종 올려볼까 합니다..

반응형