본문 바로가기

프로그래머스117

행렬 테두리 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 디버깅을 하는 게 중심적인 문제이다. 각 테두리의 요소들에 회전을 어떻게 적용하는지가 중요한데 아래와 같이 코드를 작성하면 직관적으로 각 요소들이 제대로 변환이 되었는지 확인할 수가 있다. 아래 방법은 기존 배열을 복사하여 이전 값들의 요소를 그대로 가져와서 board를 업데이트하는 방법이다. 당시에는 아래와 같이 풀이를 진행했다. # 디버깅용 # 아래 코드에 queries문에서 사용시 .. 2024. 3. 18.
배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 최단 경로 알고리즘을 사용해서 풀이해야 하기에 다익스트라 알고리즘을 사용했다. 트리구조를 그래프화 시켜준다. 이때 (이웃 노드, 거리)를 튜플로 만들어 삽입한다. 1번 노드부터 순회하며 해당 노드는 방문처리 해준다. 나머지 노드에 대해선 무한대의 값으로, 힙은 거리 비용을 기준으로 정렬할 수 있게끔 초기화한다. 거리 비용이 적은 노드부터 우선 방문하여 이미 최단 거리를 구한 노드라면 건너.. 2024. 3. 16.
수식 최대화 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 정수와 연산자를 각각 나누어 준다. 최대 가능한 조합은 3! 이기 때문에 3개의 연산자로 이루어진 순열을 구해주며 정수 배열은 연산자 배열에 비해 크기가 1이 크다. 따라서 (좌측 피연산자 연산자 우측 피연산자)에 대한 계산이 가능하다. 연산자를 만났을 때 연산자를 기준으로 피연산자에 대해 계산을 해준다. 계산에 사용된 좌측 피연산자는 계산 값으로 갱신하고 계산에 사용된 우측 피연산자와 .. 2024. 3. 16.
숫자 카드 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 지문 설명 그대로 구현하면 되는 문제이다. get_gcd 함수는 reduce로 대체할 수 있다. 각 배열의 원소가 전부 동일한 숫자로 나누어 떨어지면서 그중 가장 큰 값을 얻는 것은 최대 공약수를 구하는 것으로 해결할 수 있다. 그렇게 구한 최대 공약수가 반대쪽 배열에서 나누어 떨어지는지 확인하기 위해 divide 함수를 사용할 수 있다. 2 미만은 소수 이므로 해당 값은 바로 Fals.. 2024. 3. 14.
괄호 변환 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 지문의 예시를 그대로 구현해야 하는 분할정복 문제다. from collections import deque def solution(p): if not p or is_valid(p): return p cnt, u, v = 0, "", "" for i in range(len(p)): if p[i] == "(": cnt += 1 elif p[i] == ")": cnt -= 1 if cnt ==.. 2024. 3. 11.
[3차] 방금그곡 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 해당 문제는 2월 21일 자 기준으로 지문에 누락된 정보가 있다. 34번 테스트 케이스의 경우 조건을 전부 만족하는데도 실패가 뜨는데 치환 과정에서 B#을 추가해줘야 한다. 이는 지문에 적혀있지 않은 정보다. "#"이 들어간 문자열을 한 글자로 치환해주어야 하며 각 시간은 분 단위로 변환한다. 음악이 반복 재생되는 구간을 특정한 뒤 m이 그 구간에 포함되어 있다면 해당 곡이 정답이 된다... 2024. 3. 8.