Python
-
[Python] BOJ 1018 체스판 다시 칠하기카테고리 없음 2025. 12. 9. 11:00
1. 요구사항시간 제한: 2초메모리제한: 128MB보드 안에서 시작 가능한 모든 8x8 시작 위치를 고르고w로 시작 체스판과 비교했을 때, 다시 칠해야 하는 칸 수b로 시작 체스판과 비교했을 때, 다시 칠해야 하는 칸 수둘 다 계산해서 더 작은 값만 취함. 2. 설계N, M 을 입력 받는다.board 를 입력 받아 초기화한다.answer = 64최대로 다시 칠해야 하는 경우의 수는 64번이다. 최대 8x8 이니시작점 i, j의 범위는 (N - 7) (M - 7) - 7 인 이유 시작인덱스는 0 ~ 전체길이 -8 까지 가능0을 포함해야 하기 때문에 -7cnt_w = 0, cnt_b = 0시작점마다 w, b 각각 칠해야하는 경우의 수를 카운트한다.이제 각 시작점 마다 돌아야한다.현재 위치 r, c 의 범위는..
-
[Python] BOJ 15596 정수 N개의 합코딩테스트/백준 2025. 4. 22. 17:14
요구사항시간 제한: 0.1초메모리 제한: 512MB정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성문제 이해def solve(a: list): 라는 함수를 짜야함.예를 들어, a = [1, 2, 3] 이라면 solve() 는 이들의 합인 6을 return설계리스트를 순회하며, 이들의 합을 구함.구현ef solve(a: list): total = 0 for num in a: total += num return total# a = [1, 2, 3]# print(solve(a))
-
[Python] BOJ 2562 최댓값코딩테스트/백준 2025. 4. 22. 17:10
요구사항 시간 제한: 1초메모리 제한: 128MB주어진 9개의 숫자들 중 최댓값을 찾고, 최댓값이 몇 번째 수인지 구해라. 설계주어진 범위의 크기가 매우 작으므로 시간과 메모리의 제한은 무의미하다. 입력 받은 9개의 수를 리스트에 저장.리스트를 순회하며 최댓값을 갱신.갱신됐다면 현재 몇 번째 인지 저장. 구현import sysinput = lambda: sys.stdin.readline().rstrip()how_many_nums = 9max_num = 0count = 0num_list = [int(input()) for _ in range(how_many_nums)]# print(num_list)for i in range(how_many_nums): # print(i) max_num = max..
-
[Python] BOJ 2739 구구단코딩테스트/백준 2025. 4. 22. 16:42
요구사항숫자를 입력받아 그 숫자에 해당하는 구구단을 출력하라. 따라서 주어진 숫자의 범위가 극히 작으므로 시간제한 및 공간제한은 무의미하다. 설계숫자를 입력 받아 해당 숫자에 해당하는 구구단을 출력한다. 구현 1import sysinput = sys.stdin.readline().rstrip()n = int(input())end_num = 9for mul_num in range(end_num): print(n, '*', mul_num, '=', n * mul_num)실수 1라인 4에서 str 은 callable 할 수 없다한다. input 이라는 변수에 str 을 저장함. 근데 문자열을 함수처럼 불러 생긴 오류 lambda: . . .를 붙여 해결한다. 위 뜻은 input을 함수처럼 다시 만든 것...
-
[Python] BOJ 2798 블랙잭코딩테스트/백준 2025. 3. 26. 16:47
총 걸린 시간1631-1641요구사항시간 제한: 1초메모리 제한: 128MBN장의 카드 중 3장의 카드의 합이 최대한 M과 가까운 숫자들의 합을 구해라. 3장을 찾을 수 있는 경우만 입력으로 주어진다. 설계combinations 라이브러리를 불러와 3장의 조합을 구한다. 조합을 돌며 조합의 합이 M 보다 작을 때, 체크하며 가장 큰 값을 구한다. 구현from itertools import combinationsimport sysinput = lambda : sys.stdin.readline().rstrip()N, M = map(int, input().split())numbers = map(int, input().split())num_list = list(combinations(numbers, 3))max..
-
[Python] BOJ 2231 분해합코딩테스트/백준 2025. 3. 26. 13:23
총 걸린 시간 1254 - 1310 (16min)요구사항 시간 제한: 2초메모리 제한: 192MB자연수 N의 가장 작은 생성자를 구하라.설계브루트 포스를 해야 된다 생각했다. 그 이유는 그 경우의 수 말고 방법이 안보인다. 해당 문제의 경우 생성자가 여러 개인 자연수도 있을 수 있고 없을 수 있다 했다. 하지만 이 두 가지 경우에 어떻게 출력해라 명시되어 있지 않으므로 임의로 가장 작은 생성자를 찾으면 프로그램을 종료하도록, 생성자를 찾지 못하면 0을 출력하도록 설계했다. 구현import sysinput = lambda: sys.stdin.readline().rstrip()N = int(input())# N의 가장 작은 생성자를 찾기 위한 브루트포스for i in range(1, N + 1): #..
-
[Python] leetcode 367 Valid Perfect Square코딩테스트/LeetCode 2025. 2. 3. 20:21
https://leetcode.com/problems/valid-perfect-square/description/요구사항sqrt() method를 사용하지 말 것거듭제곱의 제곱근인지 자연수인지 판별하라. 설계4의 약수 1249의 약수 13916의 약수 1 2 4 8 16이처럼 감히 추측하건데 자연수의 거듭제곱의 약수는 무조건 홀수이고 그외는 짝수이다. 따라서 약수의 개수가 홀수이면 True를 반환구현 (leetcode 버전은 한 번 더 내려주세요.)import sysinput = lambda: sys.stdin.readline().rstrip()def is_square(num): print(num) num_list = [] for i in range(1, num+1): if ..
-
[Python] BOJ 7562: 나이트의 이동코딩테스트/백준 2024. 11. 27. 11:20
https://www.acmicpc.net/problem/7562요구사항시간제한: 1초 메모리제한 : 256MB나이트의 시작점에서 도착점까지의 최소 거리를 구하라설계우선 , 나이트가 이동할 수 있는 방향을 모두 적는다.나이트는 한 자리에서 최대 8곳으로 이동할 수 있다. BFS로 푼다. 구현from collections import dequeimport sysinput = lambda: sys.stdin.readline().rstrip()# 나이트는 한자리에서 최대 8곳을 방문할 수 있다. dx = [2, 1, -2, -1, 2, 1, -2, -1]dy = [1, 2, 1, 2, -1, -2, -1, -2]def bfs(init_x, init_y, destianation_x, destianation_y..