알고리즘

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 가능한 모든 경우의 노란 직사각형 모양을 검사함. yw, yh를 구해서 그 넓이를 둘러싼 길이가 brown과 같으면 True 리턴. 코드 def solution(brown, yellow): res = [] for yw in range(1, yellow+1): yh = yellow/yw if yh%1!=0 and yw*yh!=yellow: continue if (yw+yh+4)*2-..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 stack에 하나씩 쌓으면서, 직전 값과 이번에 넣을 값이 같으면(2연속 같은 글자면) 둘 다 stack에서 빼고 다르면 둘 다 넣음. 모든 동작이 끝나고 stack에 값이 있으면 연속되지 않은 문자열이 있는 것임. 코드 def solution(s): stack = [] for i in range(len(s)): if stack and stack[-1] == s[i]: stack...
문제 https://school.programmers.co.kr/learn/courses/30/lessons/157342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 DATEDIFF함수와 AVG, ROUND 함수를 사용해 풀이 당일부터 1일이기 때문에 DATEDIFF 값에 +1해줌 코드 SELECT CAR_ID, ROUND(AVG(1+DATEDIFF(END_DATE, START_DATE)),1) AS AVERAGE_DURATION FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID HAVING A..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 조건에 부합하는 다음 큰 수가 나올 때까지 반복함. 코드 def solution(n): next_num = n while True: next_num += 1 if bin(n)[2:].count('1') == bin(next_num)[2:].count('1'): return next_num
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 시간 효율을 위해 이전값, 이전전값 을 num까지 갱신해가며 풀이 코드 1) 리스트 사용 def solution(num): dp = [0 for _ in range(num+1)] dp[1] = 1 dp[2] = 1 for i in range(3, len(dp)): dp[i] = dp[i-1] + dp[i-2] return dp[-1]%1234567 2) 리스트 사용 X def so..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/164672 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 CASE~ THEN 문을 사용하여 STATUS별로 문자열 지정해줌. 나머지는 코드 참조,, 코드 SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'RESERVED' THEN '예약중' WHEN STATUS = 'DONE' THEN '거래완료' END AS STAT..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 효율성 테스트를 한번에 못풀어서 다른 사람의 힌트를 참조함.. 투포인터로 접근 연속된 숫자의 합이기 때문에 x를 시작점으로 두고 y를 늘려가며 합을 확인함. 합이 num보다 커지면 x를 한칸 오른쪽으로 밀면 합-1되기 때문에 새로운 경우의 수가 됨 이런식으로 포인터 x,y를 옮겨가며 모든 경우를 체크 코드 def solution(num): res = 0 for x in range(..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 bin 함수 활용해서 단순 구현 코드 def solution(s): res = [0,0] while s!='1': new_str = s.replace('0', '') res[0] += 1 res[1] += (len(s) - len(new_str)) s = str(bin(len(new_str)))[2:] return res
감자156
'알고리즘' 카테고리의 글 목록 (2 Page)