본문 바로가기

Coding Test/SWEA5

[SWEA] 4014 활주로 건설 (Python) - Simulation 📌 문제1. 격자의 각 셀에는 지형의 높이가 정수로 주어져 있다.  2. 목표는 가로 또는 세로 방향으로 활주로를 건설할 수 있는 경우의 수를 구하는 것이다. 3. 같은 줄에 높이가 다른 구간이 있다면 반드시 아래와 같은 경사로를 설치해줘야 한다.경사로의 길이: X ( 2 경사로의 높이: 14. 아래는 문제에서 주어진 모든 경우를 나타낸 것이다. 4. 문제에서 주어진 경사로 건설 규칙에 따라 경사로를 건설하면, 예제에 대한 정답은 다음과 같이 7이 된다.📌 풀이CodeT = int(input())for tc in range(1, 1+T): N, X = map(int, input().split()) # N: 맵 크기, X: 활주로 길이 arr = [list(map(int, input().. 2024. 11. 7.
[SWEA] SWEA 1242 암호코드 스캔 (Python) - Simulation 📌 문제1. 세로 2000, 가로 500 이하의 크기를 가진 직사각형 배열 안에 16진수로 이루어진 암호 코드 배열이 있다. 2. 먼저, 16진수 암호를 모두 2진수로 변환한 뒤, 암호 해독을 해야한다. 3. 문제는, 아래와 같이 암호코드의 가로 길이가 늘어난 경우도 존재한다는 것이다.=> 그래서 각 구간의 "비율"로 접근해야 한다. 4. 암호 해독을 마쳤으면, 암호코드의 정상 여부를 확인해야 한다.암호 코드는 숫자 8개로 구성 (7개 고유번호 + 1개 검증코드)암호 코드 검증법 : ((홀수 자리의 합 x 3) + 짝수 자리의 합 + 검증 코드) % 10 == 0 5. 정상적인 암호 코드만 찾아서 해당 코드에 포함된 숫자들의 합을 출력한다. 📌 풀이Codeimport sysinput = sys.std.. 2024. 9. 3.
[SWEA] 5215 햄버거 다이어트 (Python) - Backtracking 📌 풀이Codedef backtrack(idx, score_sum, cal_sum):    global max_score    if cal_sum > L:                     # 경로 중간에 이미 제한 칼로리 넘어버리면 그 경로 가망 없음        return                          # 가지치기        if idx == N:                        # 최대 인덱스 도달 시        if score_sum > max_score:       # 현재 점수 합이 기존 최대 점수보다 높으면            max_score = score_sum       # 최대값 갱신    else:                              .. 2024. 8. 29.
[SWEA] 1227 미로2 (Python) - DFS/BFS DFS, BFS를 연습해보기 위해 미로2 문제를 두 가지 방식을 각각 적용하여 풀어보았습니다.어떤게 더 효율적이었을까요?📌 풀이Code (DFS)from collections import dequedef DFS(start): global visited stack = deque() stack.append(start) visited[start[0]][start[1]] = 1 while stack: r, c = stack.pop() for k in range(4): nr = r + dr[k] nc = c + dc[k] if 0  Code (BFS)from collections import d.. 2024. 8. 25.
[SWEA] 11315 오목 판정 (Python) - Simulation 📌 풀이Codedef check_omok(N, arr): # 우 / 하 / 우하 / 좌하 dr = [0, -1, -1, -1] dc = [1, 0, 1, -1] for r in range(N): for c in range(N): if arr[r][c] == 'o': # 'o'를 만나면 for k in range(4): # 델타 continuous_num = 1 for n in range(1, 5): # 현재 돌 포함 연속 4번 nr = r + dr[k]*n .. 2024. 8. 18.