목록분류 전체보기 (234)
honey_pot
https://school.programmers.co.kr/learn/courses/30/lessons/12980?language=python3 짝수와 홀수의 규칙만 찾으면 풀리는 문제였다 1 2 3 4 5 6 7 8 9 def solution(n): ans = 0 while n > 0: if n %2 == 0: n /= 2 else: n -= 1 ans += 1 return ans cs 근데 문제 질문게시판에 https://school.programmers.co.kr/questions/13871 이 풀이 진짜 대단하다 어떻게 이런 생각을??? n이 1이 될때까지 2로 나누면서 안 나눠질때 1을 더하는 방식이니까 2진수로 계산해서 점프를 하는 순간 == 1 이라고 표현할 수 있음 1 2 def solut..
https://school.programmers.co.kr/learn/courses/30/lessons/17684 현재 문자를 w, 다음 문자를 c로 두고 사전에 입력되어있으면 다음 문자에 해당하는 부분을 1씩 늘린다 사전에 없는 문자열이면 다음 문자가 될 마지막 문자를 제외한 앞 문자열(이전 루프에서 사전에 있는 것으로 판별됨)의 순서를 answer에 넣고 w를 c의 바로 전으로 이동시킨다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 def solution(msg): answer = [] dic = {} for i in range(65,91): dic[chr(i)] = i-64 w,c = 0,1 while True: word = msg[w:c] if c == ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dDwcOr/btrMkR4i2ZF/dbdCZ4mZm69A0i8Vq0BWYk/img.png)
https://school.programmers.co.kr/learn/courses/30/lessons/92335 에라스토테네스의 체와 n진수 변환 방법을 알고 있다면 대체적으로 풀이는 떠올리기 쉬운듯 하다 split('0') 후에 '~~00~~'의 경우 '00' 사이에 빈 문자열인 ""가 발생할 수 있음을 캐치하지 못해서 value 에러가 뜬 건 if num 조건 추가해서 풀었다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 def base(n,k): # n진수로 변환하는 함수 base = '' while n >0: n, mod = divmod(n,k) base += str(mod) return base[::-1] def prime(n): #..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0fzSU/btrMjXxnWku/PEeKvcDUub9oVckl3kEgmk/img.jpg)
https://school.programmers.co.kr/learn/courses/30/lessons/17687 처음에는 for문을 t 까지 돌려서 숫자 t-1 까지의 10진법 수를 n진법으로 변환해서 저장하는 걸로 생각했는데 리턴되는 값이 짧게 나왔다 다시 생각해보니 튜브가 t번 대답하는 동안 모두가 대답하게 되는 숫자의 개수가 t*m개인데 알파벳으로 처리되는 부분에서 총 개수가 t*m보다 적어지게 되므로 최대 길이인 t*m까지의 수로 변환한 뒤에 t*m까지라는 조건을 주어 슬라이싱하는게 정확하다는 걸 알게 되었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def base(n, q): # n진수를 구하는 함수 table = {10 : 'A', 11 : 'B', ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YUZWp/btrMlkd7zPj/QMNcqQ5AWAB4SORPDV2ICk/img.png)
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 큐의 길이 * 4를 하는 이유 : https://tech.kakao.com/2022/07/13/2022-coding-test-summer-internship/ 처음 떠올린 풀이가 투포인터여서 카운트 조건을 주는 건 이해하기 어렵지 않았다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from collections import deque..
https://school.programmers.co.kr/learn/courses/30/lessons/12952 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 def n_queen(graph,x,n): result = 0 if x == n: return 1 for i in range(n): graph[x] = i if promising(graph,x): result += n_queen(graph, x+1, n) return result def promising(graph,x): for i in range(x): if graph[x] == graph[i] or abs(graph[x] - graph[i]) == abs(x-i): return False return T..
https://school.programmers.co.kr/learn/courses/30/lessons/12923 격자 형태로 그림을 그려서 -1 인덱스의 값을 리턴하면 되는 dp 문제라고 생각해서 테케1번을 dp 형식으로 풀어봤는데 답이 아니었다 1 2 3 4 5 6 7 8 9 10 11 def solution(begin, end): answer = [] block = end // 2 + 1 # init 포함 col = end - begin +1 dp = [0 for _ in range(col)] # dp[i][i*c] = max(dp[i-1][i*c], i) for b in range(1,block): for idx in range(2, col//b+1): dp[b*idx-1] = max(b, dp[..