알고리즘 알고리즘/프로그래머스 2024. 5. 12. [파이썬] 프로그래머스 알고리즘 고득점 Kit - 스택 / 같은 숫자는 싫어 완벽해설 문제 해설 이 문제는 스택(Stack)을 사용하라고 주어진 문제이다. 스택은 말 그대로 스택처럼 쌓는 자료 구조로 Last in first out (LIFO)의 구조를 지닌다. 그래서 마지막으로 들어간 값이 처음으로 나오는 그런 자료 구조이다. 스택을 사용하는 것에 대해서 특별히 유리한 장점은 따로 존재하지 않지만, 우리가 경험하는 것들 중 몇몇 부분들은 스택으로 구현이 되어 있다. 예를 들면 우리가 인터넷을 할 때에 뒤로가기를 누르면 그 전에 방문한 웹사이트로 가지게 된다. 즉 우리가 사용하는 브라우저의 웹 방문기록은 스택 방식으로 구현이 되어 있기 때문이다. 그 외에도 재귀 함수를 사용할 때에도 스택이 사용될 수도 있다. 아무튼 이 문제의 경우 딱히 스택의 용도를 전체적으로 활용하라고 주어진 문.. 알고리즘/백준 2024. 1. 26. [파이썬] 백준 연습문제 #11653. 소인수분해 완벽해설 문제 해설 이 문제의 경우는 숫자 N을 받았을 때, 2부터 N까지 돌아가는 for 루프를 만든 후, 각각의 숫자에 대해서 나눌 수 있을만큼 나누면서 출력해주면 되는 문제이다. 코드 import sys import math N = int(input()) number = N if (N!=1): for i in range(2, N+1): while (True): if (number%i==0): print(i) number = int(number/i) else: break 결과 알고리즘/소프티어 2023. 12. 30. [파이썬] Softeer 연습문제 #14. 동계 테스트 시점 예측 완벽해설 문제 https://softeer.ai/practice/6281 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 해설 이 문제에서 가장 중요한 문장을 뽑자면 "정사각형 모양의 4변 중에서 적어도 2변 이상이 외부의 공기와 접촉했을 때 정확히 한 시간 만에 녹아 없어져 버린다." 위의 문장이다. 위의 문장을 통해서 어떤 알고리즘을 사용해야 하는지, 그리고 어떤 논리를 짜야 하는지를 잘 간파해야 이 문제를 어려움 없이 풀 수가 있다. 이 문제를 푸는 방법은 하나의 시뮬레이션 코드를 작성을 해야 한다. 가장 먼저 "외부의 공기"가 너비 우선 탐색을 진행하도록 하고, 그 외부의 공기가 얼음과 부딪히는 횟수를 계산하고, 두 면 이상이 접촉하는 얼음을 기록한 후 그 얼음을 1시간 후에 녹이도록.. 알고리즘/Leetcode 2023. 9. 27. LeetCode #131. Palindrome Partitioning 해설 해설 준비과정 팰린드롬은 거꾸로 해도 같은 문자열을 의미한다. 팰린드롬의 리스트를 저장하기 위한 공간 self.path 를 준비한다. 결과를 담을 공간 self.result 를 준비한다. 백트래킹이 끝나는 조건 (종결조건) 정하기. 백트래킹의 종결 조건은 startIndex가 문자열 s의 길이와 같을 경우, 즉 모든 인덱스를 둘러봤을 때로 정한다. 그리고 종결 조건을 만족하게 되면 self.path를 self.result에 넣고 return하여 해당 함수를 끝낸다. 백트래킹 알고리즘 정하기. startIndex부터 s라는 문자열의 끝까지 for루프를 통해 횡방향 탐색을 진행한다. 만약 팰린드롬 조건(s[startIndex:i+1] == s[startIndex:i+1][::-1])을 만족하게 되면 self.. 이전 1 다음