목록분류 전체보기 (134)
개발 블로그

https://www.codetree.ai/training-field/frequent-problems/problems/firewall-installation/description?page=3&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 사고흐름1. 방화벽 설치하는 모든 경우 탐색 -> 조합2. 해당 방화벽 위치에 따른 불 영역 구하기 -> DFS, BFS 시간 복잡도 줄이기 과정 1. 첫번째 시도는 그냥 막 작성한거 -> 시간 초과2. 처음에는 BFS로 불영역 구할때 for문으로 2인거 찾아서 해당 좌표에서 BFS 시작했는데, ..

https://www.acmicpc.net/problem/15683 사고 흐름1. 최대, 최소 나오면 거의 완전탐색이다,,2. cctv의 모든 방향 확인하는 완전탐색 -> DFS로 구현! 핵심 아이디어DFS + 백트래킹n,m = map(int, input().split())board = [list(map(int, input().split())) for _ in range(n)]move = [(1,0),(0,1),(-1,0),(0,-1)]# 번호마다 움직이는 조합dic = {1:[[0],[1],[2],[3]], 2:[[0,2],[1,3]], 3:[[0,1],[1,2],[2,3],[3,0]], 4:[[0,1,2],[1,2,3],[2,3,0],[3,0,1]], 5:[[0,1,2,3]]}global ansa..

문제 설명https://www.codetree.ai/training-field/frequent-problems/problems/rounding-eight-angle/description?page=3&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 사고 흐름1. 테이블 회전 명령을 하나씩 받으면서 실행해야겠다2. 테이블을 직접 돌리기는 복잡하다 -> 테이블의 12시를 가리키는 인덱스를 사용해 테이블 돌아가는 것처럼 구현 -> 인덱스 저장 딕셔너리 사용 3. 조건 만족(인접한 사람의 출신 지역 다르면) -> 한번에 인덱스 변경 문제 핵..

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사고 흐름1. 우선 우박수를 구해야겠다2. 구한 우박수를 이용해서 넓이를 구해야하는데, k와 ranges의 최대 길이가 만개인데 매번 넓이를 구할 수는 없을 것 같다. 미리 넓이를 계산하자 -> DP 문제 핵심과 알고리즘다이나믹 프로그래밍 (DP)def solution(k, ranges): lc = [] area = [0] res = [] # lc - 우박수 ..

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사고 흐름1. number의 최대 길이가 13, 모든 합의 개수를 알아야한다 -> 완전탐색2. 완전 탐색 방법2-1. combinations 으로 풀기2-2. 3포인터로 하나씩 다 가면서 확인하기 -> 선택! 문제 핵심과 알고리즘완전 탐색 + 3포인터 def solution(number): answer = 0 number.sort() for i in range(len..

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사고 흐름1. 컨테이너, 보조 컨테이너 둘 다 스택을 사용해야겠다2. 택배아저씨가 원하는 원소를 컨테이너에서 찾을 수 있는가? 를 기준으로 나눠야겠다2-1. 택배아저씨가 원하는 박스가 컨테이너 첫번째 또는 보조 컨테이너 첫번째에 있다2-2. 없다면? -> 컨테이너 박스를 보조 컨테이너로 옮긴다. 문제 핵심과 알고리즘스택 이용 def solution(order): n = len(or..

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사고 흐름1. 완전탐색으로 모든 부분 수열의 합을 구해야겠다2. 원형 수열은 배열을 이어서 붙이면 돼~ 문제 핵심과 알고리즘문자열def solution(elements): answer = [] n = len(elements) elements = elements+elements for i in range(1, n+1) : for j in range(n) :..

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사고 흐름1. dungeons의 최대 길이 8 -> 완전 탐색으로 판단 (아니길 바랬지만)2. 완전탐색 방법2-1. dungeons의 모든 순열 조합을 찾고 확인해볼까? -> permutation 2-2. dfs로 가다가 탐험 불가능 (최소 필요 피로도만큼 부족)할 때 멈추자 -> 백트래킹 (선택) 문제 핵심과 알고리즘완전 탐색 + 백트래킹 def dfs(v, k, visited, dic..

문제 풀이https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사고 흐름1. 그래프 문제 -> dfs (재귀) 이용하자2. 분할된 그래프의 송전탑의 차이가 최소가 되야하는데,, n은 최대 100, wires는 최대 99 이므로 -> 모든 wires(간선)에 대해 분할하는 완전 탐색3. 큰 흐름은 알겠는데, 분할은 어떻게 처리하면 좋을까?3-1. 분할한것을 이미 방문한 것으로 취급한다면? (그쪽으로 안가게)3-2. 분할되지 않을 수도 있지 않을까? (이..

문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다.x1 행 y1 열부터 x2 행 y2 열까지의 영..