Lv.2

Algorithm/Programmers

[Programmers][Lv.2] 양궁대회

https://school.programmers.co.kr/learn/courses/30/lessons/92342?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡IDEA 풀면 풀 수록 라이언이 불쌍해지는 완전 탐색 문제이다. 오랜만에 알고리즘 문제를 풀었더니 완전 감이 다 떨어졌다. dfs나 완전 탐색인건 알겠는데 어떤 것부터 건드려야할지 잘 모르겠다. 결국 질문하기에서 좀좀따리 힌트 얻어가며 문제를 풀었다. 가장 도움이 되었던 것은 combination_with_replace 함수, 즉 중복조합을 사용한다는 점이었다. 0..

Algorithm/Programmers

[Programmers][Lv.2] 더 맵게

https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡IDEA 힙(Heap)을 사용해서 풀었다. 힙은 특정한 규칙을 가지는 트리로, 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한다. 힙에서는 가장 낮은(혹은 높은) 우선순위를 가지는 노드가 항상 루트에 오게 되고 이를 이용해 우선순위 큐와 같은 추상적 자료형을 구현할 수 있다. 힙 특징 : A가 B의 부모노드이면 A의 키값과 B의 키값 사이에는 대소 관계가 성립한..

Algorithm/Programmers

[Programmers][Lv.2] 기능개발

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡IDEA 스택, 큐를 사용하여 풀었다. 먼저 작업의 진도가 작업의 속도만큼 진행되었을 때 몇 일 만에 개발이 완료되는지 q에 저장하고자 했다. 처음에는 while문으로 100이 될때까지 일수를 세어주었는데, 정답 확인 후에 이 부분은 시간을 줄이기 위해서 math의 ceil(올림)함수를 사용했다. 그다음 q에 저장된 수를 popleft 해가면서 현재값보다 큰 값이 나오기 전까지 개발된 기능만 배..

Algorithm/Programmers

[Programmers][Lv.2] 올바른 괄호

https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡IDEA 스택을 사용하는 문제이다. 스택의 자료구조를 배울 때 연습해보는 가장 기본적인 문제인데 새삼스럽게 풀어보자니 조금 버벅거렸지만 그래도 잘 풀어낸 것 같다. 문자열의 앞에서부터 하나씩 확인하면서 스택에 넣고 빼는 작업을 한다. 여는 괄호('(')인 경우에는 스택에 넣어주고, 닫는 괄호(')')인 경우에는 스택의 top에 있는 것이 여는 괄호일 때 까지 빼준다. 그리고 그 여는 괄호까지 빼..

Algorithm/Programmers

[Programmers][Lv.2] 124 나라의 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡IDEA 재귀를 사용하여 풀었다. 문제를 보면 1, 2, 4 세 가지 숫자로 10진수를 나타내야 하므로 3진법이라고 볼 수 있다. 일반적으로 3진법이면 3으로 나누었을 때의 나머지를 가지고 판단하면 되는데, 이 문제에서는 0을 취급하지 않기 때문에 조금 주의해야 한다. 처음에는 이전에 나온 값을 재사용할 수 있는 동적 계획법이 좋지 않을까 생각해서 그렇게 풀었지만 정확성 테스트는 모두 통과했지만..

Algorithm/Programmers

[Programmers][Lv.2] 멀쩡한 사각형

https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡IDEA 수학 문제다. 규칙을 찾는 게 중요한데, 처음엔 일차함수처럼 기울기를 사용해서 풀려고 했지만 12번 테스트 케이스가 시간초과가 발생했다. 다시 고민해서 최대공약수를 사용해서 푸는 방법을 생각했다. 최대공약수만큼 중복되는 점을 사용해서 가로+세로-최대공약수 만큼의 사각형을 사용할 수 없게 된다. 예시에서 가로 8 세로 12인 경우, 가로 2 세로 3인 사각형이 최대공약수인 4번 반복된다...

so-so
'Lv.2' 태그의 글 목록