목록문제 풀이 (103)
honey_pot
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 == ..
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): #..
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', ..
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[..
https://school.programmers.co.kr/learn/courses/30/lessons/12924 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def solution(n): answer = 0 a = 1 # 등차수열의 a (첫째항) d = 1 # 등차수열의 공차 while a
https://school.programmers.co.kr/learn/courses/30/lessons/49994 이 문제는 예전에 시도했다가 못 푼 흔적이 남아있는 걸 다 풀고 나서야 봤는데 뭘 푼거야? 문제를 읽긴 한거야? 소리가 절로 나오는 삽질의 현장이었다... 과거의 나야 용케 지금까지 문제 풀고있구나😇 bfs를 이용해서 풀려고 시도했던 흔적이 보이는데 그때는 시뮬레이션 문제라는 걸 풀어본 적이 없어서 아는 걸로 풀어보겠다고 노력했던 것 같다 지금 보니 달팽이나 그리드 회전 문제보다 천사다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def solution(dirs): x,y = 0,0 # 시작 위치 table = { 'U':[0,1], 'D'..