
[백준] 1018 체스판 다시 칠하기 - 파이썬
2022. 4. 4. 17:23
알고리즘
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 초기코드 import sys def count(board, x, y, color): count = 0 for i in range(x, x + 8): for j in range(y, y + 8): if board[i][j] != color: count += 1 if j != y + 7: color = 'B' if color == 'W' else 'W' return count n, m = map(int, input().split()) board = [0] *..

[백준] 7568 덩치 - 파이썬
2022. 4. 2. 10:56
알고리즘
7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net import sys n = int(input()) w, h = [0] * n, [0] * n for i in range(n): w[i], h[i] = map(int, sys.stdin.readline().split()) for i in range(n): count = 1 for j in range(n): if w[i] < w[j] and h[i] < h[j]: count += 1 print(count, end=" ") 처음에는 몸무게와 키를 각각 리..

[Spring] Spring DI
2022. 4. 1. 17:31
프로그래밍/Spring
Spring DI DI는 'Dependency Injection'의 약자로 '의존 주입'을 의미한다. 여기서 말하는 '의존'은 객체 간의 의존을 말한다. import java.time.LocalDateTime; public class MemberRegisterService { private MemberDao memberDao = new MemberDAO(); public void regist(RegisterRequest req) { Member member = memberDao.selectByEmail(req.getEmail()); if (member != null) { throw new DuplicateMemberException("dup email " + req.getEmail()); } Member..

[백준] 2231 분해합 - 파이썬
2022. 4. 1. 14:46
알고리즘
2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net def digit_sum(n): sum = n while n > 0: sum += n % 10 n //= 10 return sum n = int(input()) digit = len(str(n)) front = n // 10 ** (digit - 2) - 1 if digit > 2 else n // 10 - 1 while digit_sum(front * 10 + 9) > n: front -= 1 start = front * 10 + ..

[백준] 2798 블랙잭 - 파이썬
2022. 4. 1. 00:02
알고리즘
2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net n, m = map(int, input().split()) lst = list(map(int, input().split())) dif = 300000 for i in range(n - 2): for j in range(i + 1, n - 1): for k in range(j + 1, n): sum = lst[i] + lst[j] + lst[k] if m - sum < dif and sum