여니의 취준 준비 253

[6236] 용돈관리 in python

이분탐색으로 풀어야하는 문제 인출금액(k)와 인출횟수(cnt)의 값은 반비례한다는 것에 주목해야 한다. 통장에서 인출하는 금액의 값이 이용금액보다 모자라게 되면 남은 금액은 통장에 집어넣고 다시 k원을 인출한다. 그러면 인출하는 횟수는 늘어나게 된다. 따라서 인출하는 금액의 값이 인하되어야 인출하는 횟수를 늘릴 수 있기 때문에 반비례 관계라고 말할 수 있다. 계산한 cnt (인출횟수)의 값이 m값보다 작으면 -> k의 값을 감소시켜야하므로 right=mid-1 cnt의 값이 m값보다 크거나 같으면 -> k의 값을 증가시켜야하므로 left=mid+1 # 1/12일 n, m = map(int, input().split()) array = [int(input()) for _ in range(n)] left =..

[16956] 늑대와 양 in python

https://www.acmicpc.net/problem/16956 16956번: 늑대와 양 크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게 www.acmicpc.net 이 문제는 울타리의 최소 개수를 구하는 문제가 아니라는 것을 감안하면 쉽게 풀 수 있었던 문제입니다.. 흡 양은 이동할 능력이 없기 때문에 움직일 수 없고 늑대만이 인접한 칸을 자유롭게 넘나들수 있습니다. 인접한 칸이라는 뜻은 변을 공유하고 있다는 뜻과 동일함다. . : 빈칸 s : 늑대 w : 양 d : 울타리 울타리를 어떻게든 설치해도 늑대가 양이 있는 칸으로 이동할 수 있다면? > 0 을..

[스프링 핵심 원리 이해 1] 회원 도메인 설계 및 개발

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 게시글 참고 출처 강의 링크 첨부! 강의를 들으면서 몰랐거나 얕게 알고 있었던 부분들 중심으로 게시글 작성합니다 +_+ Enumeration Type (열거 타입) : 요일, 계절과 같이 한정된 데이터만을 ..

[14499] 주사위 굴리기 in python

문제출처 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net in Java HTML 삽입 미리보기할 수 없는 소스 주사위 회전 시 주사위의 윗면, 앞면, 오른쪽면을 각각 1,2,3 으로 숫자를 지정해준다. 그러면 필연적으로 아랫면, 뒷면, 왼쪽면은 각각 6, 5, 4가 되어야한다. 왜냐하면 일반적인 주사위는 마주보는 양면의 합이 7이 되어야하기 때문이다. 이를 이용하면 쉽게 문제를 ..

[1520] 내리막 길 in python

ㅎr.... dp는 왤케 어려운걸까.. 머리가 돌아가지 않는다아... 이 문제 딱 보는 순간 dfs 문제라는 걸 직감하였디! 그래도 문제 풀면 풀수록 나아지는 게 느껴져서 행복하다.. (물론 아직 갈길이 멀긴 하지만!) 이 문제는 처음부터 이해를 잘못했었다.. 역시 나답다 ^_^ 현재 높이보다 작은 곳으로 이동하는건데 가장 작은 높이들만 찾아서 이동하는 건줄 알았다 ^0^.. 예시를 가지고 풀이 시작! 총 3가지의 경우의 수가 있다! 1번째 경로 50 -> 45 -> 37 -> 20 -> 17 -> 15 -> 10 0 0 0 1 1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 2번째 경로 50 -> 45 -> 37 -> 32 -> 20 -> 17 -> 15 -> 10 2 2 ..

[1309] 동물원 in python

다이나믹 프로그래밍 문제! 경우의 수를 따져서 출력해야 하는데 n=1, n=2까지 직접 경우의 수를 따져보며 규칙을 발견하며 푸는 방식 n=0일땐 1 사자가 하나도 배치가 되어있지 않은 경우의 수도 하나의 경우로 친다고 했으므로. n=1일땐 3 oo, xo, ox 총 3가지 n=2일땐 7 1) n번째 줄이 모두 비어있는 상태 (oo) n=1 oo. xo. ox n=2 oo oo. oo -> 3가지 dp[n-1] * 1 : n번째 줄에는 oo 하나의 경우만 존재하고 있으므로 1를 곱하는 것 2) n-1번째 줄이 모두 비어있는 경우 (oo) n=1 oo. oo n=2 xo ox -> 2가지 dp[n-2] * 2 3) n-1, n번째 줄이 모두 채워져 있는 경우 (ox , xo) dp[n-1]-dp[n-2] ..

[2644] 촌수 계산하기 in python

 dfs, bfs 두 방식 모두 풀 수 있었던 문제! 처음엔 dfs를 총 2번 돌려서 촌수를 더하는 방식으로 계산하려고 했으나 너무 비효율적인 것 같아서 패쓰.. 이 촌수 그래프는 무방향 그래프이니까 array[자식]=부모 array[부모]=자식 이런식으로 양쪽의 값을 각각 넣어줘야한다. import sys sys.setrecursionlimit(300000) n=int(input()) yeon,kim=map(int,input().split()) m=int(input()) array=[[] for _ in range(n+1)] visited=[0 for _ in range(n+1)] for _ in range(m): p,c=map(int,input().split()) array[p].append(c) ..

[10451] 순열 사이클 in python

처음엔 dfs 를 떠올리지 않고 반복문만으로 해결하려고 했으나,, 하다보니 재귀로 하는 게 더 편할 것 같아서 노선 변경!! 런타임 에러가 나서 sys.setrecursionlimit(2000)으로 최대 재귀를 늘려주었더니 해결! dfs 를 이용해서 문제를 풀어주었음! visited는 방문한 노드의 리스트를 저장해두는 리스트 circle은 현재 서클에 해당하는 리스트 import sys sys.setrecursionlimit(2000) for _ in range(int(input())): n = int(input()) array = list(map(int, input().split())) array.insert(0,0) visited = set() answer = 0 idx = 1 def dfs(node..

[2512] 예산 in python [이분탐색]

전형적인 이분 탐색 문제! 오랜만에 풀었던 탓인지 이분 탐색 구현하는 데 있어서 사알짝 버벅..버벅..거렸다.. (열심히 하자..) 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정한다. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산요청에는 모두 상한액을 배정한다. 상한액 이하의 예산요청에 대해서는 요청한 금액을 그대로 배정한다. 여러번의 실패를 경험한 가장 중대했던 이유 start의 초기값을 0으로 설정해뒀기 때문 ^^ 다시 정리해두자! (1) 초기값 설정 - start=0 - end=max(리스트) (2) 반복문 조건 설정 while start

[1057] 토너먼트 in python

라운드 참가자가 홀수라면? -> 마지막 번호 참가자는 자동 진출 라운드 변경시마다 참가자의 번호 재배치 이때 순서는 처음 번호의 순서를 그대로 유지하면서 1번부터 매긴다. 한명만 남을때까지 라운드를 진행한다 * (조건) * 참고로 토너먼트가 한 경기마다 한 팀이 탈락하고 승리한 팀만 다음 라운드로 진출하는 원리이다. 김지민과 임한수는 항상 이긴다! 16 8 9 를 예시로 들어보면! 8과 9, 즉 김지민과 임한수는 항상 이긴다고 가정한다. 그러면 첫번째 라운드에서 김지민은 8번째 -> 4번째로 이동되고 임한수는 9번째 -> 5번째로 이동된다. (물론 다른 숫자들은 임의로 이동시킴, 결과에 영향이 없으므로 왜냐? 어차피 김지민과 임한수만 남을거니까) 위 과정을 쭉 하면 김지민과 임한수만 남게 된다. 김지민 ..