알고리즘70 [SWEA] 2105. 디저트 카페(Python) / Brute Force SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 1시간 32분 소요 사용 알고리즘 : Brute Force + Simulation 모든 경우의 수에 대해 다 검사해야 하는 완전탐색 문제이다. 마름모를 그릴 때 시작점이 되는 점은 행은 0부터 N-3까지, 열은 1부터 N-2까지의 영역 안에 들어야 한다. makeDistance(sr, sc) 함수에서 시작점의 위치 행, 열 좌표를 인자로 넣으면 시작점에서 대각선 사각형을 이루는 왼쪽, 오른쪽의 대각선 한 변이 될 수 있는 각각의 길이를 이중 포문으로 구한다. 이 때, 시작점의 반대편에 있는 꼭지점의 행 위치가 맵을 넘어가면 안 되므로, 그 경우는 if sr+l.. 2021. 3. 30. [SWEA] 2112. 보호필름(Python) / DFS swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 1시간 1분 소요 많이 풀어본 유형이라 큰 고민 없이 풀어낸 문제다. 사용 알고리즘 : DFS 조합 우선, 약품을 투입하지 않고도 성능검사를 통과하는 경우에는 0을 출력한다. 고 했으니, 성능검사 함수를 만들어줬다.(testPerformance()) 동일한 특성의 셀들이 K개 이상 연속으로 있는 경우에만 성능검사 통과 한 열의 동일 셀이 K 미만이면 즉시 False 리턴 이중 포문 통과하면 True 리턴하여 .. 2021. 3. 28. [BOJ] 1038. 감소하는 수(Python) / DFS 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 사용 알고리즘 : DFS 10보다 작은 수에 대해서는 input값 그대로 출력 depth를 최대 1.. 2021. 3. 26. [BOJ] 9019. DSLR(Python) / BFS www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 처음에는 DFS로 접근했다가 그렇게 해서는 답도 없을 것 같아서 BFS를 떠올렸는데, 결국 혼자 힘으로 못 풀고 다른 사람의 풀이를 봤다ㅠㅠ 사용 알고리즘 : BFS(최단거리 알고리즘) 여러 설명보다 아래 코드를 보면 이해할 수 있을 것이다. 4자리 숫자이므로 일차원 배열 visited를 10000 크기로 만든다. while문을 돌 때마다 현재 temp에 D, S, L, R 연산을 해주며 큐에 (연.. 2021. 3. 25. [SWEA] 2117. 홈 방범 서비스(Python) swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V61LqAf8DFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 어렵지 않은 문제이나, 범위 설정하는데 꽤나 애를 먹었다ㅠㅠ # 1시간 10분 소요 두 가지 방법으로 풀어봤다. 첫 번째 방법은, 마름모의 모양을 BFS로 그리는 것이다. 먼저, 지름의 크기 K에 따라 값의 리스트를 미리 만들어놓는다. 맵 내의 모든 위치에서 bfs를 돌리며 중심으로부터 크기가 N+1이 될 때까지 마름모 내에 있는 집의 갯수를 구한다. 마름모의 지름이 1 커질 때마다 큐에 든 갯수만큼만 for문으.. 2021. 3. 25. [BOJ] 2665. 미로만들기(Python) / BFS www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1≤n≤50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net 고민을 꽤 했던 BFS 최단거리 미로 만들기 문제였다. 벽이 있을 때, 뚫을 수 있되 가장 적게 벽을 뚫고 목적지까지 도달하도록 하는 것이다. visited를 각 위치별로 최댓값 float('inf')으로 초기화한다. maze[nr][nc]가 vistied의 해당 위치를 최솟값으로 갱신할 수 있을 때만 갱신하고 큐에 값을 담는다. 이 때, 빈 공간이라면 벽을 뚫지 않고도 그냥 이동할 수 있으므로 해당 빈 공간의 위치를.. 2021. 3. 25. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음