제가 낸 3회 코딩테스트 문제 중에 가희와 쓰레기 놀이가 있었습니다. 이 문제의 input에 대한 output 파일을 생성하기 위해 작성한 파일이 이 코드였는데요. 생각보다 오래 걸렸답니다. 대략 13 ~ 14초 정도 걸렸던 걸로 기억해요. 이 로직을 그대로 validator에도 썼기 때문에, 벨리 데이터가 시간 초과가 나기도 했습니다. 제가 작성했던 처음 버전의 솔루션 코드를 유심히 보실 필요는 있습니다. 왜냐하면, 생각보다 비효율적인 일을 하고 있기 때문입니다. 이 부분을 먼저 보겠습니다. new_ref의 내용을 그대로 ref에, new_con의 내용을 그대로 con에 넣어버리는 부분입니다. bfs 함수가 끝나기 직전에 호출하는데요. 이 두 친구는 bfs 내의 지역 변수로 선언되어 있어요. 이 부분입..
레퍼런스 검색 결과
요새 출제 하느라 정신이 하나도 없네요. 몇 일 동안 글을 쓰지 못했네요. 이번에는 itertools의 accumulate에 대해 간단하게 알아보도록 하겠습니다. 설명을 보면, series of accumulated sums 이라고 되어 있긴 합니다. 여기서 accumulate는 축적하다라는 뜻인데요. 뒤에 d가 붙었으니 축적된이겠죠? sums가 뒤에 붙었는데요. 축적된 합. 네. 누적합을 구하게 됩니다. 그런데 뒤에 괄호를 보면, or other binary 함수 results라고 되어 있어요. 무엇인지는 모르겠지만 대충 직역하면 다른 conversion의 결과를 누적한다. 이 정도로 해석하면 좋겠네요. 축적된 합은 몰라도, 누적합, 누적 곱 정도는 많이 들어보셨으리라 생각해요. 예제 몇 개를 봅시다...
백준으로 n과 m 시리즈를 파이썬으로 풀고 있습니다. itertools를 쓰면 꽤 편하게 풀 수 있는데요. 이 중에서 이번 시간에는 starmap에 대해서 간단하게 알아보고자 합니다. 설명 먼저 봅시다. func이랑 iterable한 무언가를 넣는다고 되어 있어요. 리턴하는 것은 iterator라고 해요. 그런데 어떤 것을 리턴하나요? function evaludated가 된 무언가를 돌려준다 되어 있는데요. 이것만 봐서는 얘가 무엇을 하는 친구인지 잘 와닿지 않아요. 대신에 문서를 보면 Roughly equivalent to 부분이 있어요. 그 밑에 있는 코드를 보면서 이해하는 게 더 빠를 거 같아요. 이런 코드가 있는데요. 일단 iterable 하다는 것은 next로 계속 뽑아올 수 있다는 것을 의미..
이번 시간에는 Collection에 있는 removeIf에 대해서 알아보겠습니다. 저는 보통 List에서 filtering을 걸어 제거할 때 쓰는 편이에요. 먼저 predicate 인터페이스에요. 단어 사전을 보면, 근거를 두다, 단정하다 정도로 되어 있는데요. 앞에 a가 붙었으니 동사는 아닐 거 같네요. 서술? 이 정도로 해석하면 좋을까요? 술어? 이보다는 명제가 조금 더 적절하지 않을까 싶습니다. 그러면, 이 인터페이스는 어떠한 명제? 서술부가 참인지 거짓인지 판단하기 위해 쓰일 거 같아요. 그러면, 사실인지 거짓인지 평가하는 메서드도 있을 거 아니에요? 이것이 test에요. 이것은 인자 하나를 받아가지고 Evaluates, 평가를 하게 되는데요. 인풋으로 넘어온 인자가 predicate에 매치되면 ..
안녕하세요. 이번 시간에는 map의 merge 메소드에 대해서 간단하게 알아보겠습니다. 먼저 예제 프로그램을 하나 보겠습니다. 이 예제는 매우 간단한 프로그램인데요. 3번째 인자에 이상한 람다 식이 들어가 버립니다? 뭔지는 모르겠지만, 키에 대응되는 value 값에 concat를 시키는 모양입니다. 그러면 결과가 어떻게 나올까요? 키 값이 1인 것의 Value는 "ab", 키 값이 2인 것의 Value는 "cd"가 나오게 됩니다. 메서드 설명을 봅시다. key가 없는 경우라면 v값을 넣어버리고, 그렇지 않으면 remapping function에 의해서 나온 값으로 replace 한다고 되어 있어요. 이 메서드는 결정적으로 multiple value에 대해서 값을 combining 하기 위해 쓴다고 되어 ..
최근댓글