본문 바로가기

프로그래밍/알고리즘126

프로그래머스 - 징검다리 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 누가 봐도 이분탐색 문제이다 코드 def solution(distance, rocks, n): # 만약 주어진 rocks 배열의 길이가 n과 같다면, 모든 돌을 제거해야하므로 distance를 반환 if len(rocks) == n: return distance # rocks 배열을 오름차순으로 정렬, 마지막에 distance를 추가하여 시작과 끝값을 설정 rocks.sort() rocks.append(distance) answer = 0 start, end = 0, distance while st.. 2023. 7. 25.
프로그래머스 - 저주의 숫자 3 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n): answer = 0 for _ in range(n): answer += 1 while '3' in str(answer) or answer % 3 == 0: answer += 1 return answer 2023. 7. 17.
간단한 문제 코드길이 점점 줄여나가기 문제 설명 문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다. 두 문자열 ineq와 eq가 주어집니다. ineq는 ""중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return 하도록 solution 함수를 완성해 주세요. 첫 번째 풀이 def solution(ineq, eq, n, m): answer = 0 if ineq== '>' and eq == '=': if n>=m: return 1 else: return 0 if ineq== '' and eq == '!': if n>m: return 1 else: return 0 if ineq== '' and eq == '!' and n > m: .. 2023. 7. 14.
프로그래머스 - 입국심사 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 제한사항 입국심사를 기다리는 사람은 1명 이상 1,000,000,000명 이하입니다. 각 심사관이 한 명을 심사하는데 걸리는 시간은 1분 이상 1,000,000,000분 이하입니다. 심사관은 1명 이상 100,000명 이하입니다. 제한사항의 n과 times가 크기 때문에 이진탐색을 사용해야함을 알 수 있다 20분이 되었을 때, 두 번째 심사대가 비지만 6번째 사람이 그곳에서 심사를 받지 않고 1분을 더 기다린 후에 첫 번째 심사대에서 심사를 받으면 28분에 모든 사람의 심사가 끝납니다. 이 부분이 .. 2023. 7. 10.
프로그래머스 - 징검다리 건너기 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정확성, 효율성 테스트가 모두 있는 문제 문제 이해 - stons: 디딤돌에 적힌 숫자가 순서대로 담긴 배열 - k: 한 번에 건너뛸 수 있는 디딤돌의 최대 칸수 - 디딤돌의 숫자는 한 번 밟을 때마다 1씩 감소 - 디딤돌의 숫자가 0이되면 밟을 수 없고 그 다음 디딤돌로 한번에 여러 칸을 건너 뛸 수 있음 - 다음으로 밟을 수 있는 디딤돌이 여러 개인 경우 가장 가까운 디딤돌로만 건너뛸 수 있음 - 건너뛰어야 하는 칸의 개수 > k라 못 건너는 상황, 총 위까지 3명이 건널 수 있음 제한사항 - sto.. 2023. 7. 3.
프로그래머스 - 경주로 건설 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제정리 - 건설회사인 죠르디는 고객사로부터 자동차 경주로 건설 견적 의뢰를 받음 - 설계도면의 각 격자의 칸은 0또는 1로 채워져 있으며, 0은 비었음을 1은 채워있음을 나타냄 - 출발점인 (0, 0)칸에서 도착점인 (n-1, n-1)칸까지 무사히 도달할 수 있게 중간에 안끊기게 건설 - 직선도로: 인접한 두 빈칸을 상하또는 좌우로 연결한 경주로, 설치시 100원 소요 - 코너: 직선 도로가 서로 직각으로 만나는 지점 , 설치시 500원 소요 - 경주로 건설하는 최소 비용을 계산해야 함 예시 추가 bo.. 2023. 6. 26.
프로그래머스 - 이모티콘 할인행사 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 포인트 중요한 건 이모티콘 할인율이 10,20,30,40 중 하나로 결정된다는 점! 간과하면 급 막막해진다 코드 from itertools import product def solution(users, emoticons): answer = [-1, -1] # 최대 판매 수와 최소 비용 초기화 # 할인율 조합 생성 for discounts in product([10, 20, 30, 40], repeat=len(emoticons)): sale_num = 0 # 판매 수 cost_num = 0 # 비용 # 각.. 2023. 6. 22.
프로그래머스 - 합승 택시 요금 파이썬 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제 요약: 택시 같이 타서 아끼는 비용 계산해서 합승 제안하기 - 그림의 원은 지점을 나타내며 원 안의 숫자는 지점 번호를 나타냄 - 지점이 n개일 때, 지점 번호는 1부터 n까지 사용 - 지점 간에 택시가 이동할 수 있는 경로를 간선이라 하며, 간선에 표시된 숫자는 두 지점 사이의 예상 택시요금을 나타냄 - 간선은 편의 상 직선으로 표시 - 위 그림 예시에서, 4번 지점에서 1번 지점으로(4→1) 가거나, 1번 지점에서 4번 지점으로(1→4) 갈 때 예상 택시요금은 10원으로 동일 예상되는.. 2023. 6. 20.
백준 1302 - 베스트셀러 파이썬 문제 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 접근 딕셔너리로 풀어야겠다 코드 d = dict() for _ in range(int(input())): book = input() if book in d: d[book] += 1 else: d[book] = 1 max = max(d.values()) ans = [] for k, v in d.items(): if v == max: ans.append(k) ans.sort() print(ans[0]) - 딕셔너리를 만들고 - 북을 더하는 작업을 처리 .. 2023. 6. 16.