구현 167

[Lv.1 / 프로그래머스 / 파이썬] 택배 상자 꺼내기 (2025 프로그래머스 코드챌린지 2차 예선)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 주어진 조건대로 상자를 쌓은 뒤, 해당 지점에서부터 몇 층의 박스가 쌓여있는지 확인하면 된다. def solution(n, w, num): # 박스 정리 MAX_ROW = n//w+1 boxes = [] for row in range(MAX_ROW): boxes.append([row*w + i if row*w + i = MAX_ROW: return res if boxes[r][c] == 0: return res

[Lv.2 / 프로그래머스 / 파이썬] 충돌위험 찾기 (PCCP 기출문제 3번)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 딕셔너리를 이용하여 해결 가능한 시뮬레이션 구현 문제이다. 문제 풀이 시 특별하게 필요한 알고리즘은 존재하지 않으나, 주어진 조건에 맞게 정확하게 구현해야 한다. def solution(points, routes): # 번호별로 좌표를 map에 담음 point_map = dict() for i in range(len(points)): point_map[i+1] = points[i] robots = [] for route in routes: start_x, start_y = point_map...

[Lv.1 / 프로그래머스 / 파이썬] 데이터 분석 (PCCE 기출문제 10번)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 리스트에 담겨 있는 자료를 조건에 따라 적절히 필터링하고, 정렬하여 출력하는 문제이다. sort 함수의 key 파라미터로 람다 함수를 넘겨 보다 쉽게 정렬할 수 있다. def solution(data, ext, val_ext, sort_by): idx = ["code", "date", "maximum", "remain"] data = [d for d in data if d[idx.index(ext)]

[Lv.1 / 프로그래머스 / 파이썬] 동영상 재생기 (PCCP 기출문제 1번)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 문자열로 주어진 모든 시간을 초 단위로 환산한 뒤, 계산이 전부 끝난 다음 다시 원래 포맷으로 변환시켜주는 방법을 사용하면 구현이 보다 편하다. 다시 문자열로 치환할 때 분 혹은 초 단위가 10 미만일 때에도 두 자리수로 표현해야 함에 유의해야 한다.그리고 사용자의 입력 타이밍과 상관 없이 현재 시간이 오프닝 사이에 위치하게 되면 오프닝의 끝으로 이동하게 된다. 따라서 사용자 입력 전후로 체크해주도록 하자. def solution(video_len, pos, op_start, op_end, commands): # 전부 초 단위로 치환 vid..

[Lv.1 / 프로그래머스 / 파이썬] 카드 뭉치

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이 goal에 있는 단어를 순회하며 두 카드 뭉치의 맨 앞에 있는 단어가 일치하는 경우 꺼내서 사용한다.두 카드 뭉치 모두에서 일치하는 단어가 없다면 No를 반환한다.goal을 모두 성공적으로 순회했다면 Yes를 반환한다. 두 카드 뭉치의 맨 앞에 있는 것부터 순차적으로 사용해야 하므로 스택으로 변형하여 pop()을 활용하였다. def solution(cards1, cards2, goal): cards1 = cards1[::-1] cards2 = cards2[::-1] for word ..

[Lv.1 / 프로그래머스 / 파이썬] 둘만의 암호

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 제한사항이 매우 작으므로 특별한 알고리즘 없이 구현이 가능하다. 알고리즘은 다음과 같다. skip에 있는 문자열을 제외한 알파벳 목록을 구한다. 이를 skipped 라 칭한다.s를 순회하며 skipped에서 현재 알파벳의 인덱스를 찾아 index 만큼 더해준다. 이 때, skipped 의 총 길이를 초과한다면 그 나머지를 구한다.result에 2에서 구한 인덱스의 알파벳을 더한다. def solution(s, skip, index): skipped = [chr(i) for i in range(97,..

[Lv.2 / 프로그래머스 / 파이썬] 다음 큰 숫자

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 숫자를 하나씩 올려갈 때, 이진수로 변환 시 1의 개수가 일치하는 것을 찾으면 된다. def solution(n): ans = n num1 = bin(n).count("1") while True: ans += 1 if num1 == bin(ans).count("1"): break return ans

[Lv.2 / 프로그래머스 / 파이썬] 이모티콘 할인행사 (2023 KAKAO BLIND RECRUITMENT)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 각 이모티콘의 할인율을 적절하게 정하여 최대의 이모티콘 플러스 가입자를 유치하고, 그 때 최대의 이익을 출력해야 한다.  알고리즘이 필요하다기 보다는 단순무식한 구현 문제였다. 완전탐색으로 문제를 해결하려고 할 때, 제한 사항이 시간복잡도를 만족하는지 확인해보자.  이모티콘의 총 길이는 7이고 할인율은 10, 20, 30, 40 총 4개이다. 그리고 최대 유저는 100명이다. 이 때 생각할 수 있는 완전탐색 알고리즘은 다음과 같다. 존재할 수 있는 모든 할인율의 조합을 이모티콘의 길이만큼 구한다.할인율의..

[Lv.1 / 프로그래머스 / 파이썬] 대충 만든 자판

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    풀이 알파벳마다 자판 상관 없이 가장 빨리 누를 수 있는 자판을 선택하는 것이 최선의 선택일 것이다.따라서 주어진 자판을 순회하며 알파벳마다 가장 빨리 누를 수 있는 횟수를 딕셔너리에 기록한다. 이후, targets의 문자열을 순회하며 딕셔너리를 이용해 문자열을 입력할 수 있는 가장 짧은 입력 횟수를 구한다. def solution(keymap, targets): # 알파벳별 가장 빨리 입력할 수 있는 횟수 계산 d = dict() for keys in keymap: for ke..

[Lv.1 / 프로그래머스 / 파이썬] 2016년

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 파이썬에서 날짜를 다루는 라이브러리인 datetime을 사용해 간단하게 해결할 수 있다. datetime 객체에 weekday() 함수를 사용해 현재 날짜의 요일을 반환받을 수 있다. 단, 인덱스 0이 월요일임에 주의하자. import datetime def solution(a, b): weekday = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"] return weekday[datetime.datetime(2016, a, b).weekday()]

반응형