전체보기
-
위클리 챌린지 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이 '참조(같..
-
Fibonacci closure (피보나치 클로저)Go lang 실습 2021. 7. 30. 15:42
클로저를 이용해 피보나치 수열을 출력해 봅시다. package main import "fmt" func fibonacci() func() int { a, b := 0, 1 return func() int { a, b = a+b, a return b } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) } } 0 1 1 2 3 5 8 13 21 34
-
거리두기 확인하기코딩 테스트/Level 2 2021. 7. 22. 07:45
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr level 2 답게... def solution(places): return [f(plac..
-
2개 이하로 다른 비트코딩 테스트/Level 2 2021. 7. 20. 10:22
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr solution = lambda numbers: [(num + 1) if (num % 2 == 0) else (num + (num ^ (num + 1) + 1) / 4 + 0.5) for num in numbers] def solution(numbers): return [(num + 1) if (num % 2 == 0) else (num + (num ^ (num + 1) + 1) / 4 + 0.5) for num in numbers] def solution(numbers): answer = [] for num in numbers:..
-
숫자 문자열과 영단어코딩 테스트/Level 1 2021. 7. 19. 23:05
https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 파이썬 def solution(s): table = ('zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine') for index, text in enumerate(table): s = s.replace(text, str(index)) return int(s) gola..
-
약수의 개수와 덧셈코딩 테스트/Level 1 2021. 7. 19. 22:53
https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr def solution(left, right): answer = 0 for each in range(left, right + 1): if count_divisor(each): answer += each else: answer -= each return answer def count_divisor(number):..