Programmers/Python 16

[Programmers Lv.1][나머지가 1이 되는 수 찾기][python]

https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 세상엔 천재가 너무 많아요 def solution(n): x = 1 for i in range(n): if n%x == 1: return x else: x += 1 # 참고하기 def solution(n): return min([x for x in range(1, n+1) if n % x == 1]) # 1이 되는 수들을 리스트에 차례대로 넣으니 제일 앞에 있는 수가 작은 수일 수 밖에 def s..

Programmers/Python 2023.03.27

[Programmers Lv.1][정수 내림차순으로 배치하기][python]

https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음엔 반복문으로 리스트를 합쳤는데 join 함수를 쓰자 ! 리스트 합치기 ex. arr = [’a’, ‘b’, ‘c’] “”.join(arr) → abc “-”.join(arr) → a-b-c 3단 코드 변화 >>> def solution(n): arr = sorted([int(s) for s in str(n)], reverse=True) s = '' for i in arr: s += str(i..

Programmers/Python 2023.03.12

[Programmers Lv.1][x만큼 간격이 있는 n개의 숫자, 정수 제곱근 판별][python]

https://school.programmers.co.kr/learn/courses/30/lessons/12954 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오류는 났지만,,, (아마 0일 때 if를 처리해줘야 할듯. 귀찮음) list(range(x, (n+1)*x, x)) 이런 식으로 가능!! def solution(x, n): return [(i+1) * x for i in range(n)] https://school.programmers.co.kr/learn/courses/30/lessons/12934 프로그래머스 코드 중심의 개발자 채용. 스택..

Programmers/Python 2023.03.04

[Programmers Lv.1][짝수와 홀수, 자연수 뒤집어 배열로 만들기, 자릿수 더하기, 평균 구하기, 약수의 합, 문자열 내 p와 y의 개수][python]

https://school.programmers.co.kr/learn/courses/30/lessons/12937 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(num): return "Odd" if num % 2 == 1 else "Even" # 다른 코드 참고 def solution(num): return ["Even", "Odd"][num & 1] https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. ..

Programmers/Python 2023.03.04

[Programmers Lv.2][JadenCase 문자열 만들기][python]

https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr isalpha() : 알파벳인지 확인 isdigit() : 숫자인지 확인 upper() : 문자열을 소 -> 대문자로 lower() : 문자열을 대 -> 소문자로 title() : 문자열 중 단어 앞만 대문자로 ( string.capitalize()와 같음 ) string.capwords(s, sep=' ') : 각 단어의 첫 번째 문자를 대문자로 구분하여 문자열을 반환 sep 매개 변수에 값이 ..

Programmers/Python 2023.03.03

[Programmers Lv.1][개인정보 수집 유효기간][python]

https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이런식으로 년월일 계산하다가 .. 손해봤다 .. 그마져도 틀렸다 .. 그냥 일로 모두 바꿔서 비교가 훨씬 쉽다. 일 수가 28일로 정해져 있기 때문에 ! def solution(today, terms, privacies): answer = [] today = [int(i) for i in today.split(".")] term, privacy = {}, {} for i in terms: ter..

Programmers/Python 2023.03.03

[Programmers Lv.1][모의고사][python]

https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr c++로 풀어져 있었던 문제 . . python 으로 다시 풀었는데 비슷하게 풀었다. def solution(answers): arr1 = [1,2,3,4,5] arr2 = [2,1,2,3,2,4,2,5] arr3 = [3,3,1,1,2,2,4,4,5,5] n1,n2,n3 = 0,0,0 for i in range(len(answers)): n1 += (answers[..

Programmers/Python 2023.03.01

[Programmers Lv.1][하샤드 수][python]

https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 x 범위를 확인 못하고 구현했다 . . 조건 잘 확인하깅 def solution(x): n = 0 tmp = x while tmp != 0: n += tmp%10 tmp //= 10 return True if x%n == 0 else False def solution(x): n = list(str(x)) num = 0 for i in n: num += int(i) return True if..

Programmers/Python 2023.03.01

[Programmers Lv.1][체육복][python]

https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr (참고) set으로 중복 제거한다 . . remove를 하게 되면 index가 밀려서(?) 다음 항목이 제거 안됨 . . 이걸 두 번이나 실수했네 ㅠㅠ 마지막에 arr.remove(-1) 이라고 썼다가 . . def solution(n, lost, reserve): arr = [0] * (n+2) for r in reserve: arr[r] += 1 for l in lost: arr[l] -= 1..

Programmers/Python 2023.02.28

[Programmers Lv.1][햄버거 만들기][python]

https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나는 값 4개를 따로 저장해서 비교했는데 stack[-4:] 를 다들 쓰네요 . . 4개를 pop 해서 맞으면 지우고 answer +1 아니면 다시 stack에 저장 (근데 틀렸다) Stack (python 버전) init : stack = [] push : stack.append() pop : stack.pop() top : stack[-1] def solution(ingredient): an..

Programmers/Python 2023.02.28

[Programmers Lv.1][K번째 수][python]

https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 문제대로 정직하게 . . 맞고 나서, 다른 분의 풀이보고 감탄하기 . . # i~j 번째 숫자까지 자르고 정렬했을 때, k 번째에 있는 수 구하기 # [1,5,2,6,3,7,4], i=2, j=5, k=3 # [5,2,6,3] -> [2,3,5,6] -> 5 def solution(array, commands): answer = [] for c in commands: arr = array..

Programmers/Python 2023.02.28

[Programmers Lv.1][같은 숫자는 싫어][python]

https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비교를 if a[-1:] != [i] 라고 할 수 있다 (참고) 슬라이싱은 비어있어도 인덱스 에러가 나지 않음 def solution(arr): answer = [arr[0]] answer += [arr[i] for i in range(1, len(arr)) if arr[i-1] != arr[i]] return answer def solution(arr): answer = [arr[0]] for ..

Programmers/Python 2023.02.26

[Programmers Lv.1][로또의 최고 순위와 최저 순위][python]

zero = 2 cnt = 2 -> 최저 5등(2개), 최고 3등(4개) zero = 6 cnt = 0 -> 최저 6등(0개), 최고 1등(6개) zero = 0 cnt = 6 -> 최저 1등(6개), 최고 1등(6개) zero = 1 cnt = 5 -> 최저 2등(5개), 최고 1등(6개) zero = lottos.count(0) 이란 게 있었다 ~ 괜히 리스트 원소 제거 함수 썼네 if를 쓸 필요가 없었다 .. . . def solution(lottos, win_nums): zero, cnt = 0, 0 dic = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6} # cnt : score while 0 in lottos: lottos.remove(0) zero += 1 for l in lotto..

Programmers/Python 2023.02.26

[Programmers Lv.1][소수 만들기][python]

처음에는, 조합 함수가 기억이 나지 않아서 한 케이스 조합은 무조건 6이여서 결과에서 나누는 방법으로 풀었다. from itertools import combinations def p(nums): for i in range(3, nums): if nums % i == 0: return False return True def solution(nums): cnt = 0 for i in range(len(nums)): for j in range(len(nums)): for k in range(len(nums)): if i != j and j != k and k != i: if p(nums[i]+nums[j]+nums[k]): cnt += 1 return int(cnt/6) def p(nums): ..

Programmers/Python 2023.02.26