no image
[Python] 프로그래머스 최댓값과 최솟값 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 나의 풀이def solution(s): numbers = list(map(int ,s.split(' '))) answer = f"{min(numbers)} {max(numbers)}" return answer
2024.08.18
no image
[Python] 프로그래머스 최솟값 만들기 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   나의 풀이두 배열을 곱해서 최소가 되려면, 각 배열의 최댓값과 최솟값이 곱해지면 된다.def solution(A,B): A.sort() B.sort(reverse = True) cum_sum = 0 for a, b in zip(A, B): cum_sum += a * b return cum_sum
2024.08.18
no image
[Python] 프로그래머스 피보나치 수 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 나의 풀이재귀 함수는 실행 횟수 제한이 있기 때문에, 런타임 에러 또는 시간 초과가 발생할 수 있으니 주의하자.  def solution(n): fibo_nums = [0] * (10**5 + 1) fibo_nums[1] = 1 for i in range(2, 10**5 + 1): fibo_nums[i] = fibo_nums[i - 1] + fibo_nums[i - 2] return fibo_nums[n] % 1234567
2024.08.18
no image
[Python] 프로그래머스 짝지어 제거하기 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  나의 풀이이전-현재 데이터가 동일한지 확인하기 위해서 stack을 활용했다.  def solution(s): stack = [] for char in s: # 제거할 수 있는 경우 if stack and stack[-1] == char: stack.pop() continue stack.append(char) return 1 if not stack else 0
2024.08.18
[Python] 백준 11403번 경로 찾기 풀이
문제 확인하기 11403번: 경로 찾기가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.www.acmicpc.net 나의 풀이입력된 그래프를 바탕으로 노드-엣지 사이 연결 관계를 구성했다. 연결 관계를 Queue에 넣어 순차적으로 조회하여, 최종 도달 여부를 확인했다. 다시 돌아오는 경로도 확인해야 하기 때문에, 최초 시작 지점을 visited에 포함하진 않았다.from collections import dequeimport sysdef bfs(node_edge, start, visited): queue = deque([start]) # 큐가 빌 때까지 반복 while queue..
2024.08.18
[Python] 백준 3184번 양 풀이
나의 풀이마당을 탐색하면서 양, 늑대의 개수를 파악해야 한다. 탐색할 때 연결된 곳을 한번에 방문해야하기 때문에 BFS를 사용했다.방문 중 만나는 양, 늑대의 수를 따로 변수에 저장해서 관리했다!from collections import dequeimport sys# BFS 및 방문 처리# 늑대 vs 양 개수 파악def bfs(graph, start, visited): # 방문할 곳 등록 queue = deque([start]) x, y = start visited[x][y] = True # 늑대, 양 개수 확인 wolf = 1 if graph[x][y] == "v" else 0 sheep = 1 if graph[x][y] == "o" else 0 dx = [..
2024.08.18
no image
[Python] 백준 1254번 팰린드롬 만들기 풀이
문제 확인하기 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 나의 풀이 팰린드롬은 앞으로 읽어도, 거꾸로 읽어도 똑같은 단어다. 문제에선 뒤에 몇 글자를 추가해야 팰린드롬이 되는지 확인하고 싶어한다. 이를 위해선 현재 단어 중 어느 부분까지가 팰린드롬인지 체크해야 한다. 결국 i를 바꿔가며 순 방향, 역 방향 문자열이 동일한지 확인하면 된다. S = input() for i in range(len(S)): if S[i:] == S[i:][::-1]: palindrome = S + S[:i][::-1] print(..
2023.05.26
no image
[Python] 프로그래머스 [3차] 방금그곡 풀이
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 들은 멜로디와 실제 곡을 비교하기 위해선, 재생 시간 만큼 곡의 멜로디를 늘려줘야 한다. 곡을 늘릴 때 # 이 있으면 개수를 세기 어려우니, 먼저 # 이 붙은 음을 변경해준다. 나머지 부분은 문제의 조건에 맞춰서 구현하면 된다. 재생 시간이 동일할 경우, 먼저 입력된 음악을 반환하라고 돼 있는데, 입력 시간을 기준으로 정렬하지 않아도 똑같이 정답으로 나온다. 이미 입력 시간 기준으로 입력된 거 같다. # 끝부분-처음 부분 연결돼 헷갈릴 수 있음 / 중간 멜로디만 겹칠 수 있음 # 재생 시..
2023.04.06
no image
[Python] 프로그래머스 택배상자 풀이
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 기존 컨베이어 벨트와 보조 컨베이어 벨트를 각각 Queue와 Stack으로 만든 뒤, 주어진 조건에 만족하도록 구현했다. # 1 ~ n 까지의 택배를 재 배열 # 기존 컨베이어 : queue -> 작은 수부터 빼낼 수 있음 # 보조 컨베이어 : Stack -> 큰 수부터 빼낼 수 있음 # 몇 개의 상자를 실을 수 있는지 # order의 상자가 나올 때 까지 pop from collections import deque def solution(order): order = deque(order..
2023.04.05
no image
[Python] 프로그래머스 메뉴 리뉴얼 풀이
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 Orders 배열의 원소 크기가 작고, 조합을 확인해야 하는 Course의 크기 또한 크지 않다. 따라서 모든 세트 조합을 구하더라도 시간 초과가 발생하진 않는다. 세트 조합을 구하는 과정에서 주의할 점은 알파벳 순서가 다르더라도 동일한 세트로 처리해야 한다는 점이다. 이후엔 문제에서 주어진 조건에 맞게 필터링하면 된다. # 각 손님들이 주문할 때, 가장 많이 함께 주문한 단품 메뉴를 코스 요리 메뉴로 구성 # 코스 요리 : 최소 2 가지 단품 + 최소 2 명의 손님이 주문했던 제품 만 ..
2023.03.31
no image
[Python] 프로그래머스 롤케이크 자르기 풀이
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 가짓수를 동일하게 케이크를 분리해야 한다. 앞 케이크 분리 시, 뒷 케이크의 일부 성분이 없어져 가짓수가 바뀔 수 있다는 것을 주의해야 한다. 이 생각을 안하고 이분 탐색으로 접근해서 풀었고, 결국 스스로 푸는데는 실패했다. 아래는 다른 사람의 코드를 보고 이해한 내용이다. 각 케이크 가짓수를 따로 저장해서 관리 우선 각 케이크의 idx 별 가짓수를 pt1_cnt, pt2_cnt에 저장한다. 모두 저장이 끝나면 pt1_cnt[i]와 pt2_cnt[i + 1] 이 동일한 지 확인하고, 그 ..
2023.03.30
no image
[Python] 프로그래머스 숫자 변환하기 풀이
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 x에서 y 까지의 최소 이동 횟수를 구하기 위해서 BFS를 활용했다. 이때 x와 y가 같은 경우엔, 이동 횟수가 0으로도 도달 가능하기에 미리 예외 처리를 해줬다. # 최소 연산 횟수? # y 까지의 위치를 저장하는 배열 생성 후 BFS from collections import deque def bfs(map_info: list, start: int, end: int, n: int) -> int: queue = deque() queue.append(start) # BFS 시작 while..
2023.03.24