프로그래머스

PS (Problem Solving)/Programmers

[프로그래머스] 최소직사각형

문제 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..

PS (Problem Solving)/Programmers

[프로그래머스] 짝지어 제거하기 - 파이썬, 자바스크립트

문제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() # 같으면 제거 ..

PS (Problem Solving)/Programmers

[프로그래머스] 다음 큰 숫자

문제 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

PS (Problem Solving)/Programmers

[프로그래머스] 피보나치 수

문제 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

PS (Problem Solving)/Programmers

[프로그래머스] 숫자의 표현

문제 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, ..

PS (Problem Solving)/Programmers

[프로그래머스] 올바른 괄호 - 자바스크립트, 파이썬

문제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 (..

PS (Problem Solving)/Programmers

[프로그래머스] 이진 변환 반복하기

문제 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 =..

PS (Problem Solving)/Programmers

[프로그래머스] 최솟값 만들기

문제 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

PS (Problem Solving)/Programmers

[프로그래머스] JadenCase 문자열 만들기

문제 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

PS (Problem Solving)/Programmers

[프로그래머스] 최댓값과 최솟값

문제 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..

캐럿노트
'프로그래머스' 태그의 글 목록 (14 Page)