본문 바로가기

알고리즘, 문제 풀이기록

(51)
알고리즘 주간 #19 하노이 탑 이동 순서 재귀를 사용한단 것은 알겠다. 하지만 답안 코딩을 보아도 어디서부터 손을 대야할지 모르겠다. 40번까지 진행하면서 재귀에 대해서 윤곽을 잡아가는 것이 필요할 듯 하다. 그리고 이제부터 제목에 '미완'을 따로 덧붙이진 않겠다.
알고리즘 #18 소수 구하기 (미완) 답안을 확인하였다. '에라토스테네스의 체'라는 개념이 필요한 문제이다. 이는 본 문제와 같은 상황에서 범위의 가장 작은 소수부터 시작하여 그것의 배수인 합성수를 지워나가는 방식으로 결국 범위의 소수를 도출해내는 방식이다. 이것을 코딩으로 구현해야 할 것인데, 일단 개념을 이해한 것만으로 넘어가겠다.
알고리즘 주간 #17 ACM 호텔 (미완) 자료구조에 대한 이해가 필요하지 않나 싶어서 답안을 확인한 문제이다. 첫 줄에 입력한 int값만큼의 줄에 input을 추가로 하기 위해서는 for _ in range(int(input()))을 활용하면 된다. 그리고 호수를 구현하는 로직 자체는 단순하다. 몫과 나머지를 활용하여 호수의 첫째자리와 나머지 자리를 나타내면 된다. 추후 다시 돌아와서 답안 참조하지 않고 코딩하기로 하겠다.
알고리즘 주간 #16 최대공약수와 최대공배수 (미완) 재귀니, 유클리드 호제법이니 필요한 내용에 대해 학습을 하게 해준 문제이다. GCD를 구하는 gcd() 함수의 경우 답안을 참조하였지만 여전히 이해가 되지 않아 질문글을 올려둔 상태이다. gcd()함수만 구하면 lcm() 함수는 거기서 파생되며 유클리드 호제법을 통해 결괏값을 출력해주면 된다.
알고리즘 주간 #15 약수 (미완) 여러 줄에 걸친 입력을 하는 것이 문제가 되고 있다. input()을 여러 줄에 걸쳐서 하면 되는 것이다! 복사 붙여넣기가 아니라 직접 입력을 하는 경우 엔터로 다음 줄로 간다고 생각하라. 그리고 문제 자체에 대한 수학적 로직의 경우 추후 다시 돌아와서 구현하도록 하자.
알고리즘 주간 #14 달팽이는 올라가고 싶다(미완) 답안을 확인했다. 나의 로직의 문제는 바로 소수점 아래 숫자를 메서드로 처리하려고 했단 것이다. 그게 안되면 if-else문으로 구현할 수 있어야 된다. 그리고 map() 메서드를 input 시에 활용할 수 있어야 한다.
알고리즘 주간 #13 영화감독 숌 (미완) Brute Force를 활용하는 문제이다. 답안을 확인했는데 while문에 대한 이해가 부족해서인지 BFS에 대한 이해가 부족해서인지 해독이 바로 되지는 않았다. BFS와 거기서 쓰이는 큐 개념을 이해하려 박현준 튜터의 알고리즘 강의를 들어보았지만 여전했다. 일단 계속 진행하며 알고리즘과 파이썬 문법의 기초실력을 길러야겠단 생각을 했다.
알고리즘 주간 #12 베르트랑 공준(미완) 이 문제의 경우 로직을 짜는데 '에라토스테네스의 체'라는 수학적 개념을 필요로 한다. 추후 다시 돌아와 그 개념에 대해 학습한 다음 풀이하겠다.