본문 바로가기

Problem Solving/CodeUp

(4)
[CodeUp 4035] 커피전문점 커피전문점 1. 첫째 줄에 트리의 노드(후보지)의 개수를 나타내는 정수 n이 주어진다. (2≤n≤100,000) 후보지는 1부터 n까지의 번호로 구분된다. 2. 둘째 줄부터 n-1개의 줄에 각 줄마다 후보지 쌍을 나타내는 두 codeup.kr 코드업을 밀던 중에 흥미로운 문제를 발견해서 포스팅한다. 다른 분들과 풀이의 방향이 달라 시간은 조금 느리지만, 다행히 코드는 깔끔하다. ㅎ 더보기 정해는 Union-Find 와 bfs 를 요구하지만, 사실 lca 만으로 풀린다! 생각의 편의를 위해 트리의 루트를 A로 만들어주자. 최적지의 집합이 (A-B 경로) $\cup $ (A-C 경로) 라는 것은 어렵지 않게 짐작 가능하다. 따라서 최적지의 개수는 $dep[a]+dep[b]-dep[lca(a,b)]+1$ 로 ..
1,200 1,000에서 1,100까지는 파이썬 기초 문제 덕분에 수월하게 올라갔다. 하지만 1,100에서 1,200까지는... 정말 오랜 시간 투자와 노력이 있었던 것 같다. 1,000문제 달성 글을 올린 날짜가 2월 15일이고, 파이썬 기초 문제가 나온 날이 2월 21일이니 1,200문제까지는 4개월 하고도 일주일 정도가 더 걸린 것이다. 그러나 보니 어느새 5위권을 눈앞에 둘 정도로 순위도 높아졌다. 이젠 정말로 풀 수 있는 문제가 얼마 남지 않았지만..ㅋㅋ 이대로 꾸준히 해서 3~4위 정도에 안착시킬 수만 있다면 행복할 것 같다. ps. 바로 어제, 평소처럼 코드업 게시판에 답변을 달던 중 정말 오랜만에(!) 재답변을 받을 수 있었다. 배열의 크기가 충분하지 않다는 것을 지적했었고, 이후 알려주셔서 감사하다..
Well-Known Sequence 약 일주일 전에 코드업에서 오랫동안 고민하던 문제를 풀었는데, 바로 이 문제다. Well-Known Sequence $f(n)=f(n-2)-f(n-1)$이라고 정의하자. 초항 $a$가 주어질 때, 적절한 두번째 항 $b$를 정하면 $f(n)$을 $0$으로 만들 수 있다. (단, $a \neq b$, $b$은 정수) 예) $a=25$, $b=15$인 경우, $25$, $15$, $10$, $5$, $5$, $ codeup.kr 매우 정수론 같이 생겼지만, 아이디어가 잘 떠오르지 않는다... 예제만으로 규칙을 찾기는 쉽지 않고, 수열의 길이를 가장 길게 만들라는 문장도 잘 와 닿지 않는다. 이 문제를 풀기 위해서는... 내가 몇 달 동안 생각하지 못했던 '발상의 전환'이 필요하다! 이런 부류의 아이디어성 문..
1,000문제 달성 조금씩 조금씩 문제를 풀다 보니 어느새 1,000문제를 채웠다. 코드업을 시작했을 때만 해도 상상도 못 한 일이고, 500문제 정도 해결한 시점에서도 문제들이 어려워지는 게 느껴져서 '졸업 전까지는 풀겠지...' 이런 생각을 했었다. 그런데 예상보다 조금 많이 빨리 달성한 걸 보면, 내가 대단한 것 같기도 하고, 미친 것 같기도 하다. (내신 버림?) 600...700...800... 50위권(1페이지)에 들겠다는 의지 하나만으로 정말 열심히 공부하고 풀었다. 돌이켜 보면 정말 비효율적인 공부법이었고 랭작에 꽂히는 것도 좋은 습관은 아니지만, 그 바보 같은 열정이 있었기에(!) 정보에 빠져들고 한 단계 성장할 수 있었던 것 같다. 900문제 정도 풀었을 때 더는 풀만 한 게 없어서 실력을 키우고 다시 오..