본문 바로가기
반응형

블로그 글161

[ Codility 코딜리티 ] Lesson 3 FrogJmp Python파이썬 풀이 //문제 요약 개구리가 길을 건너고자 한다. 이 개구리는 지금 X위치에 있고 한번 점프할 때 마다 D 만큼 이동할 수 있는데 Y 보다 크거나 같은 지점까지 갈 수 있는 최소 점프 횟수는 얼마인가? // 풀이 이 문제는 while문 같은게 바로 떠오르는 아주 간단한 문제다. 하지만 X로 부터 Y 가 아주 멀고 D가 아주 작은 경우에는 while로 돌릴경우 시간 복잡도가 올라갈 수 있다. 따라서 X, Y 사이의 거리를 먼저 구하고 D로 나누어 주는 방식으로 루프를 피해서 간단히 계산할 수 있다. while의 경우 O(n)이 걸릴 것으로 예상되고 나눗셈의 경우 O(1)이 걸릴 것으로 예상되므로 나눗셈을 선택하는 것이 옳다. 코드를 먼저 보자. def solution(X, Y, D): # write your c.. 2021. 4. 17.
[ Visual Studio ] How to fix the unresolved external symbol error LNK1120 LNK2019 Linker error is one of the most nervouse error in VS. The Error message and results of googling always has not enough information. Even official MicroSoft page does. In this case, a madness point is eventhough the source code doesn't have any error, we can't build this code. Additionally, because linker error occur at .dll or .obj file, it is too hard to catch the bug. Now, let m.. 2021. 4. 17.
[ 알고리즘 ] 재귀함수를 설계하는 개인적인 방법 본문은 파이썬 알고리즘 인터뷰( 박상길 저 )를 참고하여 리트코드의 24번 문제를 풀이한 것임을 미리 밝힌다. //재귀함수 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을... 출처는 나무위키다. 그러니까 자기자신과 똑같은 기능을 하는 함수를 품은 함수로 나선을 생각하면 가장 쉽다. 특정 조건을 달성하면 그 나선의 끝에 다다르고 .. 2021. 4. 13.
[ Codility 코딜리티 ] # Lesson 2 OddOccurrencesInArray python 풀이 // 문제 요약 비어 있지 않은 리스트 A 가 있는데 홀수개의 정수 N 들을 담고있다. 이 N중에서 짝을 이룰 수 없는 정수가 하나 존재한다. 짝을 이룰 수 없는 정수를 출력해라. 예를 들어 A = [ 9, 3, 9, 3, 9, 7, 9 ] 인경우 7이 반환되어야 한다. //풀이 처음에는 two-pointer 같은 방법들로 짝을 이룰경우 소거하는 방식을 생각했으나 그냥 개수를 세어본 후 홀수개의 원소를 반환하면 되는 방법이 가장 간단했다. 물론 1인 경우 반환을 생각해서 한번 틀렸고 이것을 홀수로 고치니까 풀렸다. 이런 사소한 부분들을 생각해내는 훈련을 하는 것이 코딩테스트 문제풀이의 가장 좋은점이 아닐까 한다. 개수를 세는 방법을 쓰기 위해서는 collections 안에 있는 Counter 를 이용해서.. 2021. 4. 11.
[ Codility 코딜리티 ] # Lesson 2 CyclicRotation Python 풀이 //문제 요약 정수 N이 여러개 들어있는 array A 가 주어진다. 이때 A를 K번 회전 시키면 얻어지는 리스트를 구해라. 단, 회전이란 A = [1, 2, 3, 4, 5] 그리고 K = 3 일때 [3, 4, 5, 1, 2] 를 리턴하는 것을 말한다. //풀이 바로 풀어보자. 처음엔 나도 회전에 대한 개념을 잘못잡아서 여러번 시도했던 기억이 난다. K가 3이라는 말은 위의 사진에서 a가 3칸 옆으로 움직인다는 말이고 이건 index가 3이 된다는 소리다. 따라서 2개의 리스트로 분할하여 붙여주면 간단한 풀이가 된다. def solution(A, K): # write your code in Python 3.6 if not (A and K): return A K = K % len(A) return A[-K.. 2021. 4. 11.
[ Codility 코딜리티 ] # Lesson 1 BinaryGap python 풀이 코딜리티는 네이버의 코딩테스트 플랫폼으로 알려져 있다. (언제 바뀔지 모름 주의) 개인적으로 아주 깔끔한 UI에 친절한 문제 설명이 주어지는 플랫폼인것 같다. 하지만 null input 이나 값이 없는 빈 리스트만 입력에 추가되어 있는 등 주의할 예외처리들이 다수 존재하는 실무형 문제가 많다. 문제의 대부분이 영어로 출제되는 만큼 코딩만 잘 해서는 문제를 바로 풀기가 힘들다. //풀이 Lesson 1 요약 어떤 정수 N이 주어지면 이 N을 2진수로 바꿨을때 발생하는 binary_gap의 최대값을 구해라. 이때 binary_gap은 1과 1로 닫힌 공간 안에 있는 0의 갯수이다. 즉 10001 의 경우 3이고 1000 의 경우 없다. 없는 경우는 0을 출력해야한다. 언뜻 생각하면 이 숫자를 모두 이진화하여.. 2021. 4. 10.
반응형