programmers

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() # 같으면 제거 else: stack.append(next) # 다르면 추가 else: stack...

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 설계 - ')'가 '('보다 많을 수 없다는 것이 핵심이다. def solution(s): arr = list(s) # 개수 확인 cnt1, cnt2 = 0, 0 for i in arr: if i == '(': cnt1 += 1 else: cnt2 += 1 # ')'가 '('보다 많을 수 없다. if cnt2 > cnt1: return False if cnt1 == cnt2: return T..

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

PS (Problem Solving)/Programmers

[프로그래머스] k진수에서 소수 개수 구하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 소수판별시 시간초과 방지를 위해 루트를 활용하는 방법을 사용했다. Math.sqrt(num)를 이용하여 소수판별 활용 // 소수 판별 함수 function isPrime(num) { if (num === 2) { return true; } for (let i = 2; i = k) { number.push(n % k); n = parseInt(n / k); } // 나머지가 0보다 크..

캐럿노트
'programmers' 태그의 글 목록 (12 Page)