문제 https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제에서 주어진 대로 구현. 아래 코드 참조 코드 def solution(num): if num==1: return 0 for i in range(500): if num == 1: return i if num%2: num *= 3 num += 1 else: num//=2 return -1
프로그래머스 풀이
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 dp를 설정해 이전값과 그 이전값을 더해주면 됨. 여기서 두 값의 의미는 이전값 : 이전 모든 경우에 +1 해주는 경우 그 이전값: 그 이전값의 모든 경우에 +2 해주는 경우 임. 아래 코드를 보면 결국 피보나치 꼴이 된다. 코드 def solution(n): dp = [0 for _ in range(n)] dp[0] = 1 if n>1: dp[1] = 2 for i in rang..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제에서 주어진대로 a,b를 라운드별로 갱신해가며 풀이 a를 더 작은쪽으로 설정하고 a%2 조건을 넣어주는 것이 포인트,, 코드 def solution(n,a,b): res = 1 if b2: if a%2 and b-a == 1: #만남 break a, b = (a-1)//2 + 1, (b-1)//2 + 1 res += 1 n//=2 return res
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 arr 원소가 값이 작고 arr 배열 길이도 작아서 반복문 돌림 가장 큰 값을 n배 해가며 arr 모든 원소가 나누어 떨어지면 return gcd, lcm을 통해 정석으로 풀이하면, tmp = (원소 * tmp) / gcd(원소, tmp) 로 arr의 원소를 하나씩 추가해가며 lcm을 구해 풀이.. 코드 def solution(arr): i = 1 MAX = max(arr) whi..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 정렬하고 두포인터로 가장 가벼운 사람 + 가장 무거운 사람 조합으로 태워감. 제일 가벼운 사람을 태울 수 있을 때 까지 r_idx를 하나씩 빼감. 가벼운 사람을 태울 수 있으면 가능한 한 많은 가벼운 사람을 태움. 코드 def solution(people, limit): # 구명보트는 혼자타거나, 둘이타거나 people.sort() res, inter_sum = 0, 0 l_idx..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 words를 순회하면서 딕셔너리에 하나씩 추가함. 딕셔너리 형태는 {'첫글자':[word1, word2, ...] , ... } 꼴로 만들어서 이전에 등장한 word를 찾을 때의 cost를 최소화 함.. words를 순회하면서 뒷글자를 ex_end로 저장해 끝말잇기 틀린 사람있으면 return 코드 def solution(n, words): already_ = dict() alre..
문제 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...