Programmers / 피보나치 수 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 피보나치 수 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12945 나의 풀이 1 - 재귀함수 이용 (오답 + 런타임에러) def fibo(n): if n
Programmers / 신규 아이디 추천 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 신규 아이디 추천 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와..
Programmers / [1차] 비밀지도 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: [1차] 비밀지도 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17681 나의 풀이 def solution(n, arr1, arr2): answer = [] # bin 함수 [2:] 로 해준다. for i, j in zip(arr1,arr2): # bin(i|j) 는 i랑 j를 이진변환 하고 같은 자리에 # 모두 0이 오면 0, 하나라도 1이 있으면 1로 출력 tmp = str(bin(i| j)[2:]) if len(tmp) < n: tmp = "0" * (n-len(tmp)) + tmp tmp = tmp.replace("1","#") tmp = tmp.replace("0"," ") answe..
Programmers / 최댓값과 최솟값 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최댓값과 최솟값 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12939 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 나의 풀이 def solution(s): arr = s.split(' ') new = [] result = '' for i in arr: new.append(int(i)) a = min(new) b = max(new) result += str(a) result += ' ' result += str(b) return ..
Programmers / 최솟값 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최솟값 만들기 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12941 나의 풀이 def solution(A,B): # 두 수를 고르고 곱한 값을 최소로 하는 것이 목표, 뽑았던 숫자는 못뽑음 A = sorted(list(A)) B = sorted(list(B), reverse = True) return sum([x*y for x,y in zip(A,B)]) 문제의 조건대로 따라가면 되는 2단계 중에서도 1단계 수준의 문제이다. ※ 알아야 할 것 - sorted 함수를 이용하여 오름차순으로 정렬한다. - zip 함수를 이용하여 두 값을 곱한다.
Programmers / *[1차] 다트게임 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: [1차] 다트게임 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17682 나의 풀이(미완성) def solution(dart): arr=[] tmp = [] sum = 0 for x in dart: #문자열 분리 arr.append(x) for i in range(len(arr)): if arr[i].isnumeric(): arr[i] = int(arr[i]) for i in range(1,len(arr)): #10 처리 if arr[i-1] == 1 and arr[i] == 0: arr[i-1] = 10 arr.pop(i) for i in range(1,len(arr)):#S,D,T if a..
Programmers / 로또의 최고 순위와 최저 순위 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 로또의 최고 순위와 최저 순위 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77484 나의 풀이 def solution(lottos, win_nums): cnt = [0,0] num = [] zero_cnt = 0 for i in lottos: if i in win_nums: num.append(i) if i == 0 : zero_cnt += 1 if len(num) == 0 : cnt[1] = 6 elif len(num) == 1: cnt[1] = 6 elif len(num) == 2: cnt[1] = 5 elif len(num) == 3: cnt[1] = 4 elif len(num) == ..
Programmers / 숫자 문자열과 영단어 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 숫자 문자열과 영단어 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/81301 풀이 1 딕셔너리 리플레이스 def solution(s): nums = { 'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3', 'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7', 'eight' : '8', 'nine' : '9' } for key, value in nums.items(): s = s.replace(key,value) return int(s) 풀이 2 리스트 리플레이스 ( 인덱스와 해당 문자열이 같은 것 이용)..
Programmers / 완주하지 못한선수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 완주하지 못한선수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/42576 나의 풀이(틀림) def solution(participant, completion): new_list = list(set(participant) - set(completion)) for x in new_list: return x 나의 함수는 동명이인이 있는 경우는 고려되지 않는 잘못된 함수이다.. 다른 풀이 def solution(participant, completion): participant.sort() completion.sort() for p,c in zip(participant, completion): if ..
Programmers / 부족한 금액 계산하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 부족한 금액 계산하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/82612 나의 풀이 def solution(price, money, count): sum = 0 for i in range(1,count+1): sum += price *i if sum - money > 0: return sum - money else: return 0 모범답안 def solution(price, money, count): return max(0,price*(count+1)*count//2-money) 등차수열의 합공식을 사용하여 식을 작성하였다. 등차수열의 합은 다음과 같다. a:초항 l:마지막항 n:수열의 ..
Programmers / 3진법 뒤집기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 3진법 뒤집기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/68935 풀이 def solution(n): tmp = '' while n: tmp += str(n % 3) n = n // 3 answer = int(tmp, 3) return answer 다른 풀이 * divmod 함수 이용 x와 y를 받으면 x를 y로 나눈 몫과, 나머지가 들어있는 tuple을 리턴하게 된다. 튜플은 for in으로 순회 가능하다. def solution(n): answer = '' while n > 0: n, re = divmod(n,3)# n을 3으로 나눈 몫과 나머지 answer += str(re) retu..
Programmers / 최소직사각형 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최소직사각형 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/86491 나의 풀이 def solution(sizes): '2번 지갑을 가로로 눕힌다 -> 가로 세로를 바꾸어줌' max_w = 0 max_h = 0 for i in sizes: if i[0] max_w: max_w = i[0] if i[1] > max_h: max_h = i[1] return max_w * max_h 다른 풀이 def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in..