본문 바로가기

ACMICPC 1149 RGB거리 문제RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이다. 처음 집과 마지막 집은 이웃이 아니다. 각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파랑으로 드는 비용이 주어질 때, 모든 집을 칠할 때 드는 비용의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 집의 수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 각 집을 빨강으로 칠할 때, 초록으로 칠할 때, 파랑으로 칠할 때 드는 비용이 주어진다.출력첫째 줄에 모든 집을 칠할 때 드는 비용의 최솟값을 출력한다. 쉬운것같은데 막상 풀려니 헷갈리고 생각해보니 쉬웠.. 더보기
ACMICPC 2407 조합 문제nCm을 출력한다.입력n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n)출력nCm을 출력한다. 문제 한 번 간단해서 좋다! 참 쉬운 문제다 싶어서 시작했는데, 연등 한 번 끝나도록 못 풀고 다음날에야 풀 수 있었다. 컴비네이션의 정의에 따라 nCm = n!/{m!*(n-m)!} 에서 팩토리얼 부분이 문제였다. n,m의 범위가 100까지다 보니 100! 하면 숫자가 너무 커져 파이썬 마저 부동소수점 문제로 값에 오차가 생겨버렸다. 처음에는 math의 factorial 함수를 사용해서 안되길래, 팩토리얼 함수를 구현해서도 짜봤다. 이역시 값이 커지는건 매한가지니 틀리는게 당연지사... from math import factorial def combination (n, m):.. 더보기
Work Hard to be Lazy 어렸을적 과학동아를 정기구독 하던 때 이후로, 잡지와는 담을 쌓고 지내던 내가 군대에 와서 정기구독을 시작한 잡지가 2개가 있다.(아쉽게도) 맥심은 아니지만 PC사랑과 마이크로소프트웨어이다.새싹이라고 하기도 뭐한 프로그래머(?) 지망생이지만 군대의 2년이 빠르게 변하는 IT 세상에서 혼자 도태되기에는 충분한 시간인 것 같아 간접적으로나마 세상 돌아가는 이야기 좀 보고자 구독한 잡지들인데 이게 생각보다 재미나고 매 달 오기가 기다려지게 만드는 녀석들이다. 마이크로소프트웨어 잡지가 내 수준에 많이 어렵기는 하지만 '아...이런 세상도 있구나' 라는 걸 느끼기에는 충분해서 참 마음에 든다. 오늘 좀 늦게 도착한 9월 잡지를 보다가 인생 좌우명을 발견했다. "Work Hard to be Lazy" 평소 내 신념.. 더보기