bbooo

# study/Programmers (15)

study/Programmers 2024. 10. 1. 00:43

[Python] PCCP 기출문제 2번 석유시추

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근법석유지역을 BFS를 활용하여 그룹화하고, 그룹의 크기를 구한다.BFS로 탐색된 각 석유 지역의 크기를 계산한 후, 해당 석유 지역이 걸친 모든 열에 대해 석유량을 누적한다.(col_list 리스트에)석유량 중 가장 큰 값을 리턴한다from collections import dequemove_direction = [[0, 1], [0, -1], [1, 0], [-1, 0]]de..

study/Programmers 2024. 8. 27. 19:19

[Python] 과제 진행하기

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/176962?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법plan이 존재하는 동안 현재 진행하는 과제와 다음으로 시작하는 과제를 비교한다.(compare_result == 1) 만약 현재 진행하는 과제(now)의 종료시간이 다음 과제(plans[0])의 시작시간보다 늦다면, 현재 과제를 미루고, 다음 과제를 진행한다. (compare_result == 2 or compare_result == -1) 만약..

study/Programmers 2024. 7. 30. 19:20

[Python] 2개 이하로 다른 비트

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법2진수로 변환한 숫자에 0의 여부에 따라 다르게 계산하였다.0이 존재한다면, 가장 오른쪽에 있는 0을 1로 변환하였다. 가장 오른쪽에 있었던 0의 오른쪽 숫자를 0으로 변환하였다. 함수 f(x)는 x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수를 찾기 때문에, 가장 오른쪽에 있던 0의 인덱스를 idx라고 하면 idx + 1의 값도 변경할 수 있기 때문이다. 바로..

study/Programmers 2024. 7. 30. 17:27

[Python] 3진법 뒤집기, int() 메소드

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근법3으로 나눈 나머지를 answer에 더하는 과정을 while문으로 반복하였다.def solution(n): answer = 0 cur_n = n while(cur_n >= 3): remain = cur_n % 3 answer = answer * 3 + remain cur_n = cur_n // 3 if cur_n > 0: ..

study/Programmers 2024. 7. 24. 21:01

[Python] 오픈채팅방

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법유저 아이디를 딕셔너리의 키로, 유저의 이름을 딕셔너리의 값으로 저장하였고, 마지막에 for문을 돌며 가장 최근의 값을 출력하도록 하였다.Collections의 Defaultdict를 활용하여 딕셔너리의 값을 추가 및 업데이트 하였다.from collections import defaultdict def solution(record): id_dict = defaultdict..

study/Programmers 2024. 7. 16. 16:07

[Python] 무인도 여행

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법DFS를 활용하여 이어진 섬들끼리의 총 합을 answer에 append하는 방식으로 구현하였다.DFS에서 0이 리턴되는 경우는 방문할 수 없는 섬이라 answer에 append하지 않는다.런타임 에러가 발생하여 sys.setrecursionlimit을 활용하여 재귀 최대 깊이를 설정하였다. import syssys.setrecursionlimit(int(1e9))mx = [1,..

study/Programmers 2024. 7. 15. 19:06

[Python] 연속된 부분 수열의 합

문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법투포인터를 활용하여 합이 k보다 작을때까지의 연속된 부분 수열의 합을 찾는다.만약 누적합이 k와 같다면 answer 리스트에 값을 더한다.이 때 합이 같은 수열이 여러 개라면 길이가 짧은 수열을 리턴해야하기 때문에 [시작 idx, 끝 idx, 부분 수열의 길이]를 리스트에 더한다.answer 리스트를 길이를 나타내는 x[2] 기준으로 정렬한 후, 첫번째 원소의 [시작 idx,끝..

study/Programmers 2024. 6. 13. 22:06

[Python] 정수 삼각형

https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제설명접근법자기 자신의 값을 현재까지의 가장 큰 숫자로 값을 변경한다.그러기 위해선 자기 자신의 왼쪽 위 대각선과 오른쪽 위 대각선의 값 중 큰 값을 골라 현재 값에 더하면 된다. 다만 0번째 열인 경우 오른쪽 위 대각선의 값만 받을 수 있으며, 마지막 열인경우 왼쪽 위 대각선의 값만 받을 수 있기 때문에 조건문으로 처리해준다.마지막 행의 값 중 가장 큰 값을 리턴하면 된다. def solution(..