목록 code review (147)
KEEP GOING
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 구현 from collections import defaultdict def solution(id_list, report, k): # 중복 제거 report = list(set(report)) result = [0 for _ in range(len(id_list))] # 고소 당한 사람의 고소 당한 횟수 카운트 accused = defaultdict(in..
https://www.acmicpc.net/problem/1022 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 네 정수 r1, c1, r2, c2가 주어진다. www.acmicpc.net dx = [1,0,-1,0] dy = [0,1,0,-1] r1, c1, r2, c2 = map(int, input().split()) board = [[0]*(c2-c1+1) for _ in range(r2-r1+1)] num_of_board = (c2-c1+1)*(r2-r1+1) y = x = 0 # 0,0 부터 시작 num = 1 # board에 적힐 값 cnt = 0 d_cnt = 1 d = 0 while num_of_board > 0: # 범위 내에 존재할 수 있는 x, y 인 경우 if r1
https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr [구현] 문자열.replace('a', 'b') : sorted() 처럼 return 값이 존재하므로 반드시 변수에 저장 문자열 = 문자열.replace('..', '.') # 3단계 while '..' in new_id: new_id.replace('..', '.')=> 문자열에 '..'가 존재하는 경우, 무한루프 발생... [코드 구현] def sol..
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr [코드 구현] def position(Num): global keypad for i in range(4): for j in range(3): if keypad[i][j] == Num: return [i, j] def distance(s_x, s_y, t..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cmJWsZ/btrvY5Lfhdi/ZNwNmSlI2ydKbiyiXRg7gK/img.png)
참고) cs 면접 대비와 알고리즘 자료구조를 잘 정리해둔 블로그가 있어 소개합니다 ㅎㅎ https://gyoogle.dev/blog/algorithm/Dynamic%20Programming.html 동적 계획법(Dynamic Programming) | 👨🏻💻 Tech Interview 동적 계획법(Dynamic Programming) 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법 흔히 말하는 DP가 바로 '동적 계획법' 한 가지 문제에 대해서, 단 한 번만 풀도록 만들어주는 알고리즘이다 gyoogle.dev 파일합치기 문제 풀이 방법 https://www.youtube.com/watch?v=4OdIDIYLHlY https://www.acmicpc.net/problem/11066 11066번:..
https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 맥주는 총 20병이 있고 50미터에 1병씩 맥주를 까서 마신다. 즉, 시작 지점(상근이네 집)과 도착지점(맥주 페스티벌)의 거리가 1000미터 이내이면 행복하게 한잔씩 까면서 무사히 도착할 수 있다. - 상근이네 집과 페스티벌 장소까지의 거리가 1000m 이내이면 : True - 1000m이내가 아닐 경우 편의점에 들리면 맥주가 다시 20병까지 채워진다. 즉 상근이네 집부터 편의점까지 거리가..
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 그래프 탐색 문제이다. 1번 컴퓨터를 통해 웜 바이러스에 걸릴 컴퓨터의 개수를 구하라고 문제에서 제시해 주었다. 즉, 1번 노드와 연결된 노드의 개수를 구하면 된다. 따라서 DFS로도 BFS로도 구현할 수 있는 문제이다. * 문제에서 연결된 컴퓨터의 정보를 제시할 때 언제가 1번부터 등장한다는 언급이 없다. 따라서 6 5 6 5 5 4 4 3 3 2 2 1 다음과 같은 input 값이 주어진 경우에는 ..
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 정답 코드) def dfs(r, c, idx, total): global ans if ans >= total + max_val * (3 - idx): return if idx == 3: ans = max(ans, total) return else: for nr, nc in move: nr += r; nc += c if 0