전체 글
-
월간 코드 챌린지 시즌1 스타수열코딩 테스트/Level 3 2021. 9. 6. 19:55
https://programmers.co.kr/learn/courses/30/lessons/70130 코딩테스트 연습 - 스타 수열 programmers.co.kr 파이썬 from collections import Counter def solution(array): if len(array) == 1: return 0 count = Counter(array) answer = -1 for key in count: if count[key] * 2 < answer: continue index, length = 0, 0 max_key = key while index < len(array) - 1: if (array[index] != max_key and array[index + 1] != max_key) or a..
-
위클리 챌린지 5주차코딩 테스트/Level 2 2021. 9. 4. 11:09
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 5주차 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 파이썬 itertools를 이용하면 쉽게 풀 수 있습니다. from itertools import product def solution(word): return sorted( [''.join(each) for i in range(1, 6) for each in product('AEIOU', repeat=i)] ).in..
-
위클리 챌린지 4주차 직업군 추천하기코딩 테스트/Level 1 2021. 8. 24. 10:17
https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 파이썬 def solution(table, languages, preference): jobs = {} for row in table: each = row.split() jobs[each[0]] = {each[1]: 5, each[2]: 4, each[3]: 3, each[4]: 2, each[5]: 1} result = {} for each in sorted(..
-
golang 클로저, 생성자Go lang 실습 2021. 8. 14. 22:13
클로저의 일반적인 형태 package main import "fmt" func test() func(int) int { a := 0 addOne := func(x int) int { a += x return a } return addOne } func main() { t := test() fmt.Println(t(1)) // 1 fmt.Println(t(1)) // 2 fmt.Println(t(2)) // 4 } test 함수 안의 a와 addOne를 묶어서 클로저라고 한다. addOne 함수 밖에 있는 변수 a를 함수 내에서 사용했다. 이런 함수와 변수 세트를 클로저 라고 한다. (closure: 닫힘) 재미있게도 a가 사라지지 않고 계속 기억된 상태이다. 이를 이용해서 생성자를 만들 수 있다. pac..
-
위클리 챌린지 2주차 상호평가코딩 테스트/Level 1 2021. 8. 14. 16:05
https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 파이썬 def solution(scores): answer = "" for i, score in enumerate(map(list, zip(*scores))): if score.count(score[i]) == 1 and (score[i] == min(score) or score[i] == max(sc..
-
위클리 챌린지 1주차코딩 테스트/Level 1 2021. 8. 14. 14:52
https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr def solution(price, money, count): return 0 if (n := money - price * (1 + count) * count / 2) > 0 else -n def solution(price, money, count): return 0 if (n := price * (1 + count) * count / 2 - mone..
-
golang: slice & arrayGo lang 실습 2021. 8. 12. 08:15
go는 call by value만 지원합니다. call by reference와 비슷하게 쓰려면 포인터 값을 전달하면 됩니다. array는 당연히 call by value 방식으로 작동합니다. 그것만 지원하니까요.. package main import "fmt" func addOne(arr [4]int) { for i := range arr { arr[i]++ } fmt.Println("addOne:", arr) } func main() { a := [4]int{1, 2, 3, 4} addOne(a) fmt.Println("main:", a) } addOne: [2 3 4 5] main: [1 2 3 4] 상식적입니다. 위에서 언급한데로 포인터를 이용해서 call by reference 비슷하게 사용해 ..
-
golang: sliceGo lang 실습 2021. 8. 8. 23:41
슬라이스는 간단해 보이지만 c언어의 포인터 개념이 없다면 꽤 헛갈릴 수도 있을 것 같다. package main import "fmt" func main() { nums := []int{1, 2, 3, 4, 5} slice1 := nums[:4] fmt.Println(slice1) // [1,2,3,4] slice1[3] = 6 fmt.Println(slice1) // [1,2,3,6] fmt.Println(nums) // [1,2,3,6,5] slice1 = append(slice1, 0) fmt.Println(slice1) // [1,2,3,6,0] fmt.Println(nums) // [1,2,3,6,0] } 상식적이다. 1~5까지 nums 슬라이스를 만들고, 이중에 4개만 slice1이 '참조(같..