문제 https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 2중배열을 sort한 후 sizes[n][0] 자리의 max값과 sizes[n][1] 자리의 max값을 확인 후 곱한다. def solution(sizes): for arr in sizes: if arr[0] max1: ma..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설계- stack을 활용하여 비교했다.- 마지막에 stack의 값이 남아있다면 false 반환 파이썬def solution(s): stack = [] for next in s: if stack: # 스택이 있다면 if stack[-1] == next: # 마지막 스택과 비교 stack.pop() # 같으면 제거 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 2진법으로 변환 후 포맷에 맞게 변환하였다. - bin(n)[2:] -> 이 방식은 유용하게 사용할 것 같다. def solution(n): sum_n = list(bin(n)[2:]).count('1') for i in range(n + 1, 1000000): sum_next = list(bin(i)[2:]).count('1') if sum_n == sum_next: return i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 자주 나오는 문제, 암기해도 좋다. - for문, 재귀등 여러가지 방법이 있지만 시간복잡도상 for문이 유리하여 for문으로 풀이했다. def solution(n): now, next = 0, 1 for _ in range(n): now, next = next, now + next return now % 1234567
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12924?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 숫자의 절반 또는 +1 까지 for문 - 합이 목표보다 커지면 false, 딱 떨어지면 cnt + 1 import math def solution(n): # 예외 처리 if n == 1: return 1 cnt = 0 half = math.ceil(n/2) for i in range(1, half+1): sumV = 0 for j in range(i, ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 자바스트립트function solution(s){ let answer = 0; for (const bracket of s) { if (bracket === "(") { answer += 1 } else { answer -= 1 } // 닫는 문자가 더 많을 경우 false 반환 if (..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 내장함수를 사용하지 않고 직접 2진수를 구현했다. import math def cal(n): global zero, cnt data = list(n) arr = [] # 0이 제거된 배열 # 0 제거 for i in data: if i != '0': arr.append(i) else: zero += 1 if arr == ['1']: return '1' # 숫자 변환 new_arr =..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 처음엔 든 생각은 재귀 또는 2중 for문이었으나 설계가 잘 되지 않았다. - 결국 A는 sort, B는 reverse sort 하는 방법을 사용했다. def solution(A, B): A.sort() B.sort(reverse=1) answer = 0 for i in range(len(A)): answer += A[i] * B[i] return answer
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 파싱 def solution(s): low_s = s.lower() answer = "" answer += low_s[0].upper() # 첫글자는 무조건 대문자 for i in range(1, len(low_s)): if low_s[i-1] == " ": answer += low_s[i].upper() else: answer += low_s[i] return answer
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 파싱 def solution(s): arr = [] number = "" for i in range(len(s)): if s[i] != " ": number += s[i] else: arr.append(int(number)) number = "" # 마지막 남은 숫자를 추가해준다. arr.append(int(number)) answer = str(min..