전체보기
-
22. 하샤드 수코딩 테스트/Level 1 2019. 10. 20. 23:30
https://programmers.co.kr/learn/courses/30/lessons/12947 앞서 풀었던 21.자릿수 더하기와 유사합니다. 참고. 파이썬 def solution(x): return not (x % sum([int(i) for i in str(x)])) def solution(x): return not (x % sum(map(int, str(x)))) 자바스크립트 function solution(x) { return !(x % String(x).split('').map(Number).reduce((a, b) => a + b)) } 자바 class Solution { public boolean solution(int x) { int sum = 0; for (char num: Stri..
-
21. 자릿수 더하기코딩 테스트/Level 1 2019. 10. 19. 23:35
https://programmers.co.kr/learn/courses/30/lessons/12931 파이썬 가장 정석적인 풀이를 보겠습니다. 10으로 나눠서 나머지를 추려내는 방식으로 각 자릿수를 분리합니다. def solution(x): total = 0 while x != 0: total += x % 10 x = x // 10 return total 그런데 %도 나누기 //도 나누기입니다. 나누기를 1번만 할 수는 없을까요? 내장 함수(BIF) 중 divmod 함수를 이용하면 됩니다. https://wikidocs.net/32#divmod (다만 divmod이 나누기를 두 번 하는 것보다 항상 빠른 게 아닙니다. 작은 수에선 더 느림 ㅠ,.ㅠ) https://stackoverflow.com/ques..
-
20. 행렬의 덧셈코딩 테스트/Level 1 2019. 10. 18. 15:49
https://programmers.co.kr/learn/courses/30/lessons/12950 파이썬 기본적인 풀이입니다. def solution(arr1, arr2): answer = [] for i in range(len(arr1)): answer.append([]) for j in range(len(arr1[i])): answer[i].append(arr1[i][j] + arr2[i][j]) return answer 리스트 컴프리헨션을 사용해서 줄일 수도 있습니다만 점점 가독성이 안 좋아집니다. 리스트 컴프리헨션을 2중으로 쓰는 것은 좋지 않습니다. def solution(arr1, arr2): answer = [] for i in range(len(arr1)): answer.append([..
-
19. 문자열 내림차순으로 배치하기코딩 테스트/Level 1 2019. 10. 17. 23:01
https://programmers.co.kr/learn/courses/30/lessons/12917 파이썬 간단하게 내장함수(BIF)들을 이용해서 풀었습니다. def solution(s): return ''.join(sorted(s, reverse=True)) 파이썬을 시작했을 때 작성한 코드입니다. ㅜㅜ def solution(s): temp_list = [] for letter in s: temp_list.append(letter) temp_list.sort(reverse=True) answer = '' for each in temp_list: answer += each return answer def solution(s): temp_list = list(s) # list() 함수로 문자열을 바로 ..
-
18. 모의고사코딩 테스트/Level 1 2019. 10. 16. 03:18
https://programmers.co.kr/learn/courses/30/lessons/42840 파이썬 def solution(answers): a1 = (1, 2, 3, 4, 5) # 리스트보다 튜플이 더 좋다. 큰 의미는 없지만 a2 = (2, 1, 2, 3, 2, 4, 2, 5) a3 = (3, 3, 1, 1, 2, 2, 4, 4, 5, 5) scores = [0, 0, 0] for i, v in enumerate(answers): if v == a1[i % 5]: scores[0] += 1 if v == a2[i % 8]: scores[1] += 1 if v == a3[i % 10]: scores[2] += 1 mx = max(scores) return [i + 1 for i in range..
-
17. 같은 숫자는 싫어코딩 테스트/Level 1 2019. 10. 15. 23:07
https://programmers.co.kr/learn/courses/30/lessons/12906 파이썬 기본적인 풀이입니다. def solution(arr): answer = [] for i in range(len(arr) - 1): if arr[i] != arr[i+1]: answer.append(arr[i]) answer.append(arr[-1]) return answer 테스트 1 〉통과 (107.83ms, 997MB) 테스트 2 〉통과 (107.53ms, 996MB) 테스트 3 〉통과 (108.24ms, 997MB) 테스트 4 〉통과 (107.57ms, 998MB) 리스트 컴프리헨션으로 줄여 쓸 수 있습니다. 나쁘진 않은 것 같습니다. def solution(arr): answer = [a..
-
16. 2016년코딩 테스트/Level 1 2019. 10. 14. 23:15
https://programmers.co.kr/learn/courses/30/lessons/12901 파이썬 def solution(a, b): month = (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) day = ('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT') return day[(sum(month[0:a - 1]) + b + 4) % 7] 자바스크립트 function solution(a, b) { const month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; const day = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']..
-
15. K번째수코딩 테스트/Level 1 2019. 10. 13. 23:02
https://programmers.co.kr/learn/courses/30/lessons/42748 파이썬 뭐라 뭐라 복잡하게 적어두었지만 차근차근 작성하면 다음과 같습니다. def solution(array, commands): answer = [] for i, j, k in commands: a = array[i - 1:j] a.sort() answer.append(a[k - 1]) return answer for와 리스트가 보인다면 리스트 컴프리헨션을 떠올려 보면 좋습니다. sort()와 sorted()의 차이도 설명드렸죠? https://inma.tistory.com/137 def solution(array, commands): return [sorted(array[i - 1:j])[k - 1]..