오우 오늘 처음으로 코딜리티 풀었다 문제는 아래와 같다 대표사진 삭제 사진 설명을 입력하세요. 숫자를 이진수로 바꿨을 때 0의 연속의 길이를 구하는 것이다 근데 0이 그냥 연속돼있으면 안되고 1과 1 중간에 끼어 있어야 쳐준다 (사실 이거 빼먹었는데 다행히 테
대충 숫자 주면 lotation 돌리라는 소리 끝나면 테스트 코드를 알려주는데 example 빼고 다틀림^^이래서 테스트 코드를 짜는게 중요하다고 하는 갑다 결과는 여기여러가지 에러가 있지만 ZeroDivisionError: integer division or modu
대충 홀수번 나온 숫자를 찾는 문제라고 한다결과는 여기에
덧셈 뺄셈 문제이다 결과는 여기에여기서 codility에서 math를 사용할 수 있다는 걸 알 수 있다
어디서 본 듯한 .... 근데 in 써서 풀면 안되는(느림) 결과는 여기에
결과는 여기slicing+for문 써서 더 느린거 같다(slicing 은 시간 복잡도 O(N))결과는 여기\-맨 마지막에 출력 한번 안되게 하려고 all_sum == sum_number로 break문을 걸었는데, 음수/양수/0 셋다 나오는 상황이여서 맨 마지막이 아니라
(3, 1, 3, 1, 3, 2, 1, 3)를 넣을 때 왜 4가 나와야하지 1아닌가? 이러면서 생각하고 있었는데 문제를 잘 못 이해한 듯 했다 떨어지는 위치만 고려할 게 아니라 시간도 고려해야 하는 거였다느리겠지 했는데 정말 느리다 역시 (중간의 sorted때문에)so
전 문제에서 삽질을 많이 해서 빨리 풀었다 set중큰것.differnce(set중작은것) 하면 set으로 set 큰거 - set 작은것을 반환해준다(list 씌워서 써준다)이 때 if 문을 쓸 때 is를 쓰면 이상하게 나오고 ==을 써야 제대로 나오도라(왜 그런지는 난
리스트 안에 없는 가장 "작은" 양수를 반환하는 것이다범위 안에서 가장 작은 값이 아니라 그냥 작은 양수를 반환하는 것이다만일 리스트 안에 양수가 없으면 1을 반환 삽질의 현장 함께 해봅시다 맨 처음 문제를 잘못 이해해서 없는 양수중 가장 작은 값이 아니라 큰 값을 구
설마하고 시도!결과는 여기서 세상이 호락호락하지 않다는걸 알게된다 찾아보니 이건 한번 돌면 안되고, 그냥 처음 값과 끝 값으로 계산을 해줘야한다고 한다 그리고 B/K의 몫이 이전에 나온 divisable 값들의 갯수라고 한다 흠 결과는 여기서흠..
결과는 여기서음 느려ㅠ ㅠ앞에가 되는게 더 신기하다 그리고 참고로 sort 후 0 보다는 min이 더 빠르다고 한다 하지만 이 문제는 min으로도 되지 않는다 사실상 min이 O(n)이니까 거의 for문 두번 돌린것과 같다는 것sort 후 \[0] vs min() 시간
뭔소린가 했는데 다음과 같이 이해하면 될 듯 하다 A에서 0, 2 번째가 동쪽으로 가는 차 A에서 1, 3, 4번째가 서쪽으로 가는 차 그리고 이것들을 조합하는데, P보다 Q 가 작아야함 그래서 (0, 1) 이런 조합은 안되고 (0, 1), (0, 3), (0, 4)
결과는 여기test code를 꼭 짜보려고 하는데, 엄청 긴 수에 대해서는 테스트 코드를 어떻게 짜야할지 모르겠다 🤦♀️
길이가 3개인 것은 그냥 곱해서 return 하도록 했다 min_num_multiply는 sorted 해서 가장 맨 처음에 나오는 두개의 값을 곱한 거로 음수끼리 곱했을 때 가장 큰 값 max_num_multiply는 sorted 해서 가장 맨 뒤에서 앞, 그 앞에 나
연속적인 부분 합이 가장 작을 때 시작 지점슬라이싱을 사용하면 되고, 연속 2개/3개의 평균 중 작은 값을 찾으면 된다 첫번째 while문은 두개씩 돌린 것, 두번째 while문은 세개씩 돌린 것 근데 이게 O(n) 나온게 신기하다...결과는 여기
생각해보니 정렬을 해서 연속되는 세 수를 비교하면 되는 것 결과는 여기에
빈 리스트에 대해 예외처리를 해줬는데 알고보니 빈 리스트도 짝이 맞는 것으로 채점하더라 결과는 여기
기준을 min값으로 고정시키고 풀어서 풀이가 복잡하고 놓치는 부분이 있었다 결과는 여기서기준을 그때그때 변경하도록 했다 위처럼 풀면 같은 값에 대해서는 고려하지 않아도 된다 결과는 여기
결과는 여기에고냥 했는데 역시 n^2여서 안된다 결과는 여기에중간에 혹시 반복문을 덜 실행(?) 해보면 괜찮을까 해서 위처럼 짰는데 오히려 더 안 좋아졌다 생각해보니 for문 한번 돌면서 count 계속 갱신하면 해결되는 문제였다 결과는 여기에
https://app.codility.com/demo/results/trainingF5XNDN-N7Z/ | https://app.codility.com/demo/results/trainingRC857V-YEJ/ | https://app.codility.com/
고냥 더한 값들을 리스트에 모아 비교를 했다 합이 음수일 경우에는 0으로 초기화해서 다시 비교를 해주었다 결과는 여기에
처음부터 끝까지 비교하며 약수를 구하는 단순한 방법 O(N) 큰 값에서 Timeout이 발생했다 결과는 여기에 root(N)을 기준으로 약수가 대칭으로 있다 결과는 여기에
앞의 문제와 마찬가지로 root(N) 값을 기준으로 약수가 대칭된다는 것을 이용하면 된다 결과는 여기에
codility에서는 공식적으로 두가지 방법에 대해 소개하고 있다 첫번째 방법으로 진행할 경우 timeout이 발생한다 flags는 peak의 길이가 최대이기 때문에 peak의 길이만큼 비교를 해주었다 결과는 여기에 다른건 다 이해 되는데 N/i + 1 >= i 여야
결과는 여기에 https://app.codility.com/demo/results/training9AH3FF-VSH/ https://app.codility.com/demo/results/trainingYX26RY-RQC/ https://app.codility.
| 1트 list에 있는 수들의 갯수를 hash에 저장해놓음 list에 있는 수 각각의 약수를 찾아서 list에 있는지 찾아본다 list에 있는 갯수를 전체 길이에서 뺀 것이 답 결과는 여기에 이렇게 했더니 몇몇 케이스에 대해서 | 2트 ~ 3트 https:
| 1트 https://app.codility.com/demo/results/trainingRDVBXW-VB8/ | 2트 https://app.codility.com/demo/results/trainingKNF3PP-7DD/
codility에서 제공하는 유클리드 호제법을 사용했는데 뭔가 느린것(?)결과는 여기에구글링을 해서 다른 유클리드 호제법을 알아왔는데 이게 훨씬 빠르고 좋은 것 같다 결과는 여기에
https://app.codility.com/demo/results/training6GUDWB-DQQ/ https://app.codility.com/demo/results/training7Q5AYM-FBD/ https://app.codility.com/demo/re