프로그래머스 98

[Lv.2 / 프로그래머스 / 파이썬] 마법의 엘리베이터

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이 그리디하게 접근해야 하는 문제이다. 알고리즘은 다음과 같다. 처음 주어진 수의 1의 자리 숫자부터 순회한다.1의 자리 숫자와 다음 자리 숫자를 추출1의 자리 숫자가 5보다 크거나, 5이고 다음 자리 숫자가 5 이상이면 올림 처리그 외의 경우에는 내림 처리결과 반환 def solution(storey): result = 0 while storey > 0: num = storey % 10 # 1의 자리 수 추출 next_digit = (storey // 10) % ..

[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 / 프로그래머스 / SQL] 연도 별 평균 미세먼지 농도 조회하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 수원 지역의 미세먼지 농도를 연도를 기준으로 묶어 평균값을 출력해야 한다.  DATE 타입의 데이터에 YEAR 함수를 이용해 연도를 구할 수 있다. AVG 함수를 통해 평균값을, 그리고 ROUND 함수를 통해 반올림을 수행할 수 있다. SELECT YEAR(YM) AS YEAR, ROUND(AVG(PM_VAL1), 2) AS PM10, ROUND(AVG(PM_VAL2), 2) AS 'PM2.5'FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY ..

[Lv.1 / 프로그래머스 / SQL] 한 해에 잡은 물고기 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이 집계 함수인 COUNT를 이용하여 데이터의 개수를 조회할 수 있다. 그리고 YEAR 함수를 활용해 DATE 타입에서 연도를 구할 수 있다. SELECT COUNT(ID) AS FISH_COUNTFROM FISH_INFOWHERE YEAR(TIME) = '2021'

[Lv.1 / 프로그래머스 / SQL] 가장 큰 물고기 10마리 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 조회 결과의 최대 개수를 제한하기 위해 LIMIT을 사용할 수 있다. SELECT ID, LENGTHFROM FISH_INFOORDER BY LENGTH DESC, ID ASCLIMIT 10

[Lv.2 / 프로그래머스 / SQL] 노선별 평균 역 사이 거리 조회하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 노선별로 총 거리와 평균 거리를 반환해야 한다. 주의해야 할 점은 총 누계 거리를 기준으로 내림차순 정렬을 해야 하는데, TOTAL_DISTANCE를 그대로 정렬 기준으로 삼는다면 문자열이기 때문에 정확한 크기 비교가 되지 않는다. 따라서 문자열 형태가 아니라 숫자 형태로 비교를 해야 한다. SELECT ROUTE, CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE, CONCAT(ROUND(AVG(D_BETWEEN_DIST), ..

[Lv.2 / 프로그래머스 / SQL] 특정 물고기를 잡은 총 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 BASS와 SNAPPER 를 잡은 총 수를 출력해야 한다. 각 물고기의 FISH_TYPE은 고정된 값이 아니므로 Join을 통해 해결해야 한다. SELECT COUNT(ID) AS FISH_COUNTFROM FISH_INFO AS FIINNER JOIN FISH_NAME_INFO AS FNION FI.FISH_TYPE = FNI.FISH_TYPEWHERE FNI.FISH_NAME = 'BASS' OR FNI.FISH_NAME = 'SNAPPER'

[Lv.3 / 프로그래머스 / 파이썬] 산 모양 타일링 (2024 KAKAO WINTER INTERNSHIP)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr ↓ 문제 열기더보기   풀이 제한사항 100,000 및 타일 문제이므로 DP를 활용해야 함을 쉽게 유추할 수 있다.어떤 점화식을 도입할 수 있을지 살펴보도록 하자.  tops 의 원소가 하나 추가될 때, 회색 부분은 기존(dp[n-1])의 모든 경우의 수가 고려된 부분이므로 흰 부분에 대해서 타일링을 채우는 방법을 고민해야 한다. 흰 부분은 다음과 같은 방법으로 채울 수 있다.  따라서 tops에 따라 총 3가지 경우의 수로 구분할 수 있다(현재 고려할 top 이 0이라면, 세 번째 경우는 제외하면 된다).  하..

[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명이다. 이 때 생각할 수 있는 완전탐색 알고리즘은 다음과 같다. 존재할 수 있는 모든 할인율의 조합을 이모티콘의 길이만큼 구한다.할인율의..

반응형