본문 바로가기

programming study/Algorithm

(275)
[프로그래머스] 약수의 개수와 덧셈- JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 약수의 개수와 덧셈 // 약수를 세는 함수 function countMeasure(number) { let count = 0 // 1부터 number까지 number를 나누어떨어지게하면 약수이므로 카운트 for (let i = 1; i < number + 1; i++) { if (number % i === 0) { count += 1 } } // 약수가 짝수인 경우 양수 리턴 if (count % 2 === 0) { return number } // 약수가 음수인 경우 음수 리턴 else { return -number } } function solution(left, right) { l..
[프로그래머스] 스킬트리 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 스킬트리 from collections import deque def solution(skill, skill_trees): answer = 0 # skill_trees를 하나씩 접근 for skill_tree in skill_trees: # deque 변환 skill_tree = deque(skill_tree) # skill을 deque 변환한 복사본을 넣기 skill_clone = deque(skill) # skill_tree가 빌때까지 실행 while skill_tree: # skill_tree의 가장 앞 요소 빼기 skill_tree_first = skill_tree.popleft() # 가장 앞 요..
[프로그래머스] 멀쩡한 사각형 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 멀쩡한 사각형 # 입력받은 두 수의 최대 공약수를 구하는 함수 def gcd(a, b): if a % b == 0: return b else: return gcd(b, a % b) def solution(w, h): # w와 h의 최대공약수 구하기 w_h_gcd = gcd(w, h) # 총 정사각형의 수 total_square = w * h unusable_square = w + h - w_h_gcd # 사용할 수 있는 정사각형의 수 usuable_square = total_square - unusable_square return usuable_square Comment 답을 구하기 위해서는, 전체 정사각..
[프로그래머스] 콜라츠 추측 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 콜라츠 추측 def solution(num): # 카운트가 500 미만일 때까지 반복 # 카운트 count = 0 while count < 500: # num이 1이되면 반복 중단 if num == 1: break # num을 2로 나누었을 때의 나머지 num_remainder = num % 2 # 짝수인 경우 if num_remainder == 0: # 2로 나누기 num /= 2 # 카운트 count += 1 # 홀수인 경우 elif num_remainder == 1: # 3으로 곱한 뒤 1을 더하기 num = (num * 3) + 1 count += 1 # count가 500이 될 때까지 num이 1..
[프로그래머스] 문자열 다루기 기본 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 문자열 다루기 기본 def solution(s): # 문자열의 길이가 4 혹은 6이고 숫자로만 이루어져 있을 때 True # 문자열의 길이 s_len = len(s) if (s_len == 4 or s_len == 6) and s.isdigit(): answer = True else: answer = False return answer Reference 프로그래머스
[프로그래머스] 로또의 최고 순위와 최저 순위 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 로또의 최고 순위와 최저 순위 def solution(lottos, win_nums): answer = [] # 일치한 수에 다른 순위를 표시하는 딕셔너리 win_dic = { 6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6 } # lottos의 요소를 하나씩 접근하면서 win_nums와 몇 개가 같은 지, 알아볼 수 없는 수(0) 세기 # 같은 수의 갯수 same_nums = 0 # 알아볼 수 없는 수 zero_count = 0 for lotto in lottos: # lotto가 win_nums 리스트에 존재하는 원소인 경우 if lotto in win_nums: same_nu..
[프로그래머스] 문자열 내림차순으로 배치하기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 문자열 내림차순으로 배치하기 def solution(s): s = sorted(s, reverse=True) return ''.join(s) Comment 입력받은 문자열을 내림차순으로 배치하기 위해서 sorted 함수에 인자를 주어진 문자열과 reverse=True를 주어서 내림차순 정렬한다. Reference 프로그래머스
[프로그래머스] 키패드 누르기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 키패드 누르기 def solution(numbers, hand): answer = '' # 키패드를 2차원 리스트로 표현했을 때, 각 숫자의 인덱스를 나타내는 딕셔너리 # key: 숫자, key value: 숫자의 인덱스 [x, y]로 표현 numbers_dic = { 1: [0, 0], 2: [0, 1], 3: [0, 2], 4: [1, 0], 5: [1, 1], 6: [1, 2], 7: [2, 0], 8: [2, 1], 9: [2, 2], '*': [3, 0], 0: [3, 1], '#': [3, 2] } # left, right의 처음 위치 left = [3, 0] right = [3, 2] # 입력..