전체 글 404

[백준] S4. boj2839번 설탕 배달 /분류 : 다이나믹 프로그래밍

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) answer = 0 while N > 0: if N % 5 == 0: answer += N / 5 N -= 5 * (N / 5) else: N -= 3 answer += 1 if N < 0: answer = -1 print(int(answer)) 먼저 5의 배수인지 체크해주고 5의 배수가 아닌 경우 3씩 빼가면..

[백준] G5. boj7569 토마토 / 분류 : bfs

https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net import sys from collections import deque import copy input = sys.stdin.readline M, N, H = map(int,input().split()) tomatoes = [[] for i in range(H)] for i in range(H): for j in range(N): tomatoes[i].append(list..

[Spring DB2] 스프링 트랜잭션 전파2 - 활용

예제 프로젝트 시작 //Member.java @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String username; public Member() { //JPA 스펙상 있어야함. } public Member(String username) { this.username = username; } } //Log.java @Entity @Getter @Setter public class Log { @Id @GeneratedValue private Long id; private String message; public Log() { } public Log(String message) { this...

Spring 2024.03.31

[Spring DB2] 스프링 트랜잭션 전파1 - 기본

트랜잭션이 둘 이상있을 때 어떻게 동작하는지, 스프링이 제공하는 트랜잭션 전파라는 개념 알아보기. 트랜잭션 두번 사용 - 트랜잭션1이 완전히 끝나고 트랜잭션2가 시작 //트랜잭션 두번 사용 //트랜잭션1이 완전히 끝나고 트랜잭션2 시작 @Test void double_commit() { log.info("트랜잭션1 시작"); TransactionStatus tx1 = txManager.getTransaction(new DefaultTransactionAttribute()); log.info("트랜잭션1 커밋"); txManager.commit(tx1); log.info("트랜잭션2 시작"); TransactionStatus tx2 = txManager.getTransaction(new DefaultTra..

Spring 2024.03.31

[프로그래머스] Lv2. 소수 찾기 파이썬 / 분류 : 완전 탐색

소수 찾기 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예numbersreturn "17" 3 "011" 2 내 풀이 import math from itertools import permutations def solution(numbers): ..

[프로그래머스] Lv1. 상위 n개 레코드 Oracle

상위 n개 레코드 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VA..

SQL 문제 풀이 2024.03.31

[Spring DB2] 스프링 트랜잭션 이해 - 2

트랜잭션 옵션 value, transactionManager 트랜잭션을 사용하려면 먼저 스프링 빈에 등록된 어떤 트랜잭션 매니저를 사용할 지 알아야 한다. 코드로 직접 트랜잭션을 사용할 때 트랜잭션 매니저를 주입 받아서 사용했다. @Transactional에서도 트랜잭션 프록시가 사용할 트랜잭션 매니저를 지정해주어야 한다. value와 transactionManager 둘 중 하나에 스프링 빈 이름을 적어주면 트랜잭션 매니저가 지정되는데, 이 값을 생략하면 기본으로 등록된 트랜잭션 매니저를 사용한다. 그래서 대부분 생략한다. 트랜잭션 매니저가 둘 이상이면 적어준다. rollbackFor 예외 발생 시 스프링 트랜잭션의 기본 정책은 언체크 예외인 'RuntimeException', 'Error'와 이 하위..

Spring 2024.03.28

[프로그래머스] Lv1. 개인정보 수집 유효기간 파이썬

개인정보 수집 유효기간 문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날짜가..

[프로그래머스] Lv1. 과일 장수 파이썬

과일 장수 문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매..

[Spring DB2] 스프링 트랜잭션 이해 - 1

데이터 베이스 접근 기술마다 트랜잭션을 처리하는 방식이 다르다. 그래서 기술을 바꾸면 트랜잭션을 사용하는 코드도 모두 바꿔야 한다. 스프링은 'PlatformTransactionManager'라는 인터페이스를 통해 트랜잭션 추상화를 제공해주고, 그러면 다른 기술도 동일한 방식으로 사용할 수 있게 된다. 게다가 각 데이터 접근 기술에 대한 트랜잭션 매니저의 구현체도 제공한다. 그래서 개발자가 구현할 일은 없이 잘 가져가다 쓰기만 하면 된다. 또, 스프링 부트는 어떤 데이터 접근 기술을 사용하는지를 자동으로 인식해서 적절한 트랜잭션 매니저를 선택하여 스프링 빈에 등록해준다. 트랜잭션 사용방식 선언적 트랜잭션 관리 @Transactional 이름 그대로 해당 로직에 트랜잭션을 적용하겠다라고 선언하기만 하면 트..

Spring 2024.03.27
728x90