Python/Programmers 14

Lv.1-약수의 개수와 덧셈

문제 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 내 코드 def find(n): cnt = 0 for w in range(2, n+1): if n % w == 0: cnt += 1 return cnt def solution(left, right): result = 0 for n in range(left, right+1): if find(n) % 2 == 1: result += n else: result -= n return result 문제 풀이 find() -> n을 2 이상의 수로 나누었을 때 나머지가 0인 개수를..

Python/Programmers 2021.07.10

Lv.1-숫자 문자열과 영단어

문제 문자와 숫자가 섞여있는 문자열 s가 주어질 때 문자는 숫자로 변환돼있는 값 s를 return 하시오. ex) one23seven -> 1237 내 코드 def solution(s): arr = { 'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9' } for w in arr: if w in s: s = s.replace(w, arr[w]) return int(s) 문제 풀이 알파벳과 그에 해당하는 숫자가 mapping된 dict 배열을 만들어놓은 후, 일치하는 key 값이 s 배열에 있다면 해당하는 value로 치환한다.

Python/Programmers 2021.07.08

Lv.1-키패드 누르기

문제 1 2 3 4 5 6 7 8 9 * 0 # 위와 같은 키패드가 주어진다. 0 ~ 9 까지의 숫자가 담긴 배열 numbers가 주어지고, 1, 4, 7은 왼손으로, 3, 6, 9는 오른손으로 키패드를 누른다고 가정한다. 2, 5, 8, 0은 더 가까운 손가락으로 누르고 거리가 같다면 왼손잡이는 왼손, 오른손잡이는 오른손으로 누른다. 번호를 다 눌렀을 때 눌렸던 손가락의 순서를 return 하시오. 내 코드 matrix = [[0]*3]*4 matrix = [ [1,2,3], [4,5,6], [7,8,9], ['*',0,'#'] ] def find_position(n): ny, nx = 0, 0 for y in range(0, 4): for x in range(0, 3): if matrix[y][x] ..

Python/Programmers 2021.07.08

Lv.1-크레인 인형뽑기

문제 인형의 위치가 놓인 배열 board와 인형뽑기 기계가 내려갈 위치가 적힌 moves 배열이 주어진다. 0이 아닌 위치를 집으면 이 숫자는 bucket에 담긴다. 한번 집은 자리는 0이 된다. bucket의 숫자는 바닥부터 저장되며 같은 수가 만나게 되면 사라진다. 사라진 인형의 개수를 return 하시오. 내 코드 def solution(board, moves): bucket= [] board_len = len(board) i = 0 cnt = 0 for y in moves: for x in range(board_len): if board[x][y-1] != 0: bucket.append(board[x][y-1]) board[x][y-1] = 0 i += 1 break if i > 1 and buc..

Python/Programmers 2021.07.07

Lv.1-모의고사

문제 1번 수포자는 1,2,3,4,5,1,2,3,4,5 .... 2번 수포자는 2,1,2,3,2,4,2,5,2,1,2,3,2,4,2,5,.... 3번 수포자는 3,3,1,1,2,2,4,4,5,5,.... answer 배열이 주어질 때 가장 많이 맞힌 학생을 return해라. 내 코드 def solution(answers): cycles = { 1:[1,2,3,4,5], 2:[2,1,2,3,2,4,2,5], 3:[3,3,1,1,2,2,4,4,5,5] } correct = { 1:0, 2:0, 3:0 } i1, i2, i3 = 0, 0, 0 answer_len = len(answers) for i in range(answer_len): if i1 == 5: i1 = 0 if i2 == 8: i2 = 0 if..

Python/Programmers 2021.07.07

Lv.1-체육복

문제 전체 학생 수 n, 도난당한 학생 lost, 여분을 가지고 온 학생 reserve 배열이 주어진다. 여분을 가지고 온 학생은 자기 번호의 +1, -1의 학생에게 빌려줄 수 있다. 최대한 많이 수업을 참여할 수 있는 학생의 수를 return 하시오. ✅ 여분을 가지고 온 학생 또한 도난당할 수 있다. 내 코드 def solution(n, lost, reserve): #여분이 있지만 도난당한 학생 reser_lost=set(lost)&set(reserve) tmp=[] cnt=0 for i in list(reser_lost): lost.remove(i) reserve.remove(i) normal = n - len(lost) - len(reserve) for i in reserve: if i-1 in ..

Python/Programmers 2021.07.07

Lv.1-로또의 최고 순위와 최저 순위

문제 내 로또 번호 6자리와 당첨 번호 6자리의 두 배열이 주어진다. 내 로또 번호엔 0이 있을 수도 있으며 이는 최고 순위, 최저 순위에 따라 당첨 번호로 변경될 수도 있다. ex) [0,0,0,0,0,0] [1,2,3,4,5,6]이 주어지면 최고 순위는 1등, 최저 순위는 6등 내 코드 def solution(lottos, win_nums): same=set(win_nums)-set(lottos) min = len(lottos)-len(same) #원래 맞은 숫자 if min == 6: #애초에 1등 return [1,1] max = min for i in range(len(lottos)): if min == 6: return [1,1] if lottos[i] == 0: max += 1 if min ..

Python/Programmers 2021.07.07

Lv.1-음양 더하기

문제 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 내 코드 def solution(absolutes, signs): sum = 0 for i in range(len(signs)): if signs[i]==True: sum += absolutes[i] else: sum -= absolutes[i] return sum 문제 풀이 풀이 생략.

Python/Programmers 2021.07.07

Lv.1-소수 찾기

문제 주어진 배열에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return해야 한다. 내 코드 from itertools import combinations def solution(nums): all_nums = [] cnt = 0 li = list(combinations(nums,3)) for i in range(len(li)): all_nums.append(sum(li[i])) for i in range(len(all_nums)): half = int(all_nums[i]/2) for y in range(half+1): if y!=0 and y!=1 and all_nums[i]%y==0: cnt+=1 break return len(all_nums)-cnt 문제 풀이 ..

Python/Programmers 2021.07.07