-
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - 파이썬(python)
나의 풀이 def solution(x, n): if x == 0 : return [0 for _ in range(n)] else : return [y for y in range(x,x+n*x,x)] x가 0인 경우를 생각하지 못해서 계속 하나의 테스트케이스를 통과하지 못했다. 기존에는 x==0 인 예외를 처리하지 않아서, range(x,x+n*x,x) 에서 무한루프를 돌게 되었다. 다른 풀이 def number_generator(x, n): return [i * x + x for i in range(n)] x가 2, n이 5인 케이스를 가정해보자. i*x + x는 2, 4, 6, 8, 10 이 된다. x가 0일 때도 조건식이 존재하지 않아 통과되는 좋은 코드이다.
알고리즘/이것저것
2022. 9. 1.
-
[프로그래머스] 행렬의 덧셈 - 파이썬(python)
나의 풀이 def solution(arr1, arr2): answer = [] for i,j in zip(arr1, arr2) : answer.append([x+y for x,y in zip(i,j)]) return answer arr1 이 [[1,2],[2,3]] arr2 가 [[3,4],[5,6]] 일 때를 가정하자. zip함수를 사용하면 for문을 처음 돌 때 i는 [1,2], j는 [3,4] 가 되어 이차원을 일차원로 한 층 벗겨낸다. 이 i와 j의 원소들을 더해 하나의 리스트로 만들어야 하므로, zip함수를 한 번 더 사용해야 한다. 따라서 x는 1 y는 3이 되어 이를 더한 4와 , x는 2 y는 4가 되어 이를 더한 6, 즉 [4,6] 이라는 하나의 list 가 answer 가 append된..
알고리즘/이것저것
2022. 9. 1.
-
[프로그래머스] 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기 - 파이썬(python)
나의 풀이 def solution(survey, choices): arr ={"R":0, "T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0} result = "" for i,j in zip(survey, choices) : if j 4 : arr[i[1]] += (j - 4) arr2 = list(arr.items()) for i in range(0,len(arr2),2) : if arr2[i+1][1] > arr2[i][1] : result += arr2[i+1][0] else : result += arr2[i][0] return result 각 유형별 알파벳을 key 값으로 0을 value 로 초기화 하였다. 그..
알고리즘/이것저것
2022. 9. 1.
-
[프로그래머스] 베스트앨범 - 파이썬(python)
나의 풀이 def solution(genres, plays): answer = [] dic = {} dic2 = {} # dic 에 key : 장르, # value : 장르 총 재생횟수 를 저장한다. # dic2 에 key : 장르, # value : (수록곡 재생횟수, 고유번호) 을 저장한다. for i, (j,k) in enumerate(zip(genres, plays)): if j not in dic : dic[j] = plays[i] else : dic[j] += plays[i] if j not in dic2 : dic2[j] = [(plays[i], i)] else : dic2[j].append((plays[i],i)) # dic 의 (key, value) 에 대해 value 값으로 내림차순 정..
알고리즘/해시
2022. 5. 6.