전체 글 160

1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱

문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14dUIaAAUCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  정답 코드:# 분할 정복 거듭제곱# O(log(N))def divide_and_conquer(N, M): if M == 0: return 1 if M == 1: return N temp = divide_and_conquer(N, M // 2) if M % 2 == 1: return temp..

문제 풀이/SWEA 2024.07.18

10804. 문자열의 거울상

문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.https://swexpertacademy.com/main/searchAll/search.do?keyword=10804.+%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98+%EA%B1%B0%EC%9A%B8%EC%83%81 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 정답 코드:T = int(input())for test_case in range(1, T + 1): s = input() mirror_s = "" for i in s: if i == "b": mirror_s += 'd' ..

문제 풀이/SWEA 2024.07.18

12368. 24시간

문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXsEBlLqedsDFARX SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 정답 코드:#모듈러의 베이스라 할수 있는 문제T = int(input())for test_case in range(1, T + 1): a, b = map(int, input().split()) sum = a + b print(f"#{test_case}", sum % 24)

문제 풀이/SWEA 2024.07.18

19113. 식료품 가게

문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AYxCRFA6iiEDFASu SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 정답 코드:T = int(input())for test_case in range(1, T + 1): N = int(input()) arr = list(map(int, input().split())) # 끝에부터 보기 answer = [] while arr: answer.append(arr[-1] // 4 * 3..

문제 풀이/SWEA 2024.07.18

95. k진수에서 소수 개수 구하기

문제 설명양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.0P0처럼 소수 양쪽에 0이 있는 경우P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우P처럼 소수 양쪽에 아무것도 없는 경우단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.예를 들어, 101은 P가 될 수 없습니다.예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 때가 아닌, 10진법으로 보았을 ..

문제 풀이 2024.07.18

13736. 사탕 분배(파이썬)

문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AX8BB5d6T7gDFARO SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 코드 이해를 위해 꼭 주석을 읽어주시기 바랍니다. 정답 코드:"""전체 사탕의 개수는 A+B=C, 일 때 C로 항상 일정하다.n번째 단계에서 A개를 가지고 있는 사람이 B개를 갖고 있는 사람보다 더 적다면 2A가 되고A가 B보다 많다면, C-A 개(B)를 A에서 빼게 될 테니 2A-C 가 된다.- key point:어차피 A가 가지고 있는 사탕의 개..

문제 풀이/SWEA 2024.07.18

모듈러 산술 연산의 이해.

1. 모듈러 산술 연산 : 나머지 연산을 하는 것. 컴퓨터 언어에서 사용하는 %연산으로 표현하면 아래와 같다.r = a % m (r: 나머지, a: 피제수, m: 제수)r = a mod m# a를 m으로 나눈 나머지 r  2. 합동(Congruent) : mod 연산은 합동 관계를 바탕으로 두 수의 관계를 정의정수 a, b, m에 대해 m | (a-b)라고 하면, a와 b는 모듈러(modulus) m에 대해 합동이라 하고,a ≡ b (mod m)과 같은 수식으로 표현-> m | (a - b)에서 | 의 의미는 (a - b)는 m으로 나누어 떨어진다는 의미. 나누어 떨어지지 않는 경우는 ł-> a - b가 m이라는 정수로 나누어 떨어진다면, a ≡ b (mod m)과 같이 표현-> 이는 다르게 말하면, a..

알고리즘 2024.07.18

1227. [S/W 문제해결 기본] 7일차 - 미로2(DFS, BFS)

문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14wL9KAGkCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 정답 코드:T = 10 #테스트 케이스from collections import dequefor _ in range(T): answer = 0 dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] r = 0 c = 0 test_case = int(input()) maze = [list(input(..

문제 풀이/SWEA 2024.07.17

N-Queen 문제와 백 트래킹

1. N-Queen 문제란? (link) N*N 체스판에 N개의 퀸을 배치할 수 있는 경우의 수를 센다.퀸은 상하좌우, 대각선 방향으로 거리 제한 없이 이동할 수 있다.N=8인 경우, 경우의 수는 다음과 같다.64 * 63 * ... * 57 = 178,462,987,637,760C 기준 1초에 1억 번을 연산하므로 모든 경우의 수를 탐색하는데 약 20.6시간이 소요된다. 2. 백 트래킹필요없는 경우를 가지치기(pruning)함으로써 시간복잡도를 줄이는 방법을 백트래킹이라고 한다.       파이썬 코드:def nqueen(n): """ visited 의 인덱스는 행, 값은 열을 나타낸다. (1, 3)에 놓은 경우, visited[1] = 3 으로 표현하겠다는 것. 예시) n=4 이..

알고리즘 2024.07.17