분류 전체보기
99클럽 코테 스터디 13일차 TIL - 그리디,이분탐색 (백준27961 - 고양이는 많을수록 좋다)
99클럽 코테 스터디 13일차 TIL - 그리디,이분탐색 (백준27961 - 고양이는 많을수록 좋다)
2024.11.09https://www.acmicpc.net/problem/27961오늘의 학습 키워드 : 그리디..? 이분탐색?공부한 내용 import sys# 최소 동작 수를 계산하는 함수 정의def min_actions(N): actions = 0 # 2의 actions 제곱이 N 이상이 될 때까지 actions 증가 while 2 ** actions import sys# 입력 값 N을 받음N = int(sys.stdin.readline().strip())# 이진 탐색 범위 설정# 2**10 ≈ 10**3 이므로 2**40 ≈ 10**12 정도로 충분히 큰 범위를 잡음start, end = 0, 40result = 0# 이진 탐색을 통해 2의 몇 제곱이 N 이상인지 찾기while start = N: ..
99클럽 코테 스터디 12일차 TIL - BFS (백준7569- 토마토)
99클럽 코테 스터디 12일차 TIL - BFS (백준7569- 토마토)
2024.11.08https://www.acmicpc.net/problem/7569오늘의 학습 키워드 : BFS1. BFS로 최소 일수 계산2. 초기 상태에서 익은 토마토를 큐에 넣기3. 6방향 탐색문제의 조건에 따라 위, 아래, 왼쪽, 오른쪽, 앞, 뒤의 6방향4. 최대 일수 갱신BFS를 진행하면서 days 변수를 매 단계 갱신하며, 모든 토마토가 익을 때까지 걸린 최대 일수를 기록 최종적으로 모든 토마토가 익었을 때 max_days가 최소 일수5. 최종 상태 체크(토마토가 모두 익지 않았는지 익었는지 체크 필요)- 만약 남아있다면, -1을 출력하고 종료하여 불가능한 경우를 처리- 반면 , 모든 토마토가 익었다면, max_days를 출력합니다.공부한 내용 import sysfrom collections import de..
백준 4485(녹색 옷 입은 애가 젤다지?) - 다익스트라알고리즘, 힙구조, 최단거리- python
백준 4485(녹색 옷 입은 애가 젤다지?) - 다익스트라알고리즘, 힙구조, 최단거리- python
2024.11.04https://www.acmicpc.net/problem/4485예제 풀이일단 첨에는 DFS로 이용해서 풀었지만 아니나 다를까,, 바로 시간초과..⭐️그래서 생각한건 다익스트라 알고리즘으로 최단 경로 알고리즘이었다..예제 하나를 이용해서 다익스트라 알고리즘을 풀이하면 다음 사진과 같다고 생각하면 이해하기 쉽다. 만약 다익스트라 알고리즘이 먼가,, 이것부터라면 밑에 링크로 들어가는것을 추천한다 (나름 이코테 책보면서 정리해둔 다익스트라알고리즘이다. ) [이코테] CHAPTER 09 최단 경로 알고리즘 - 다익스트라 최단 경로 알고리즘최단 경로 알고리즘(Shortest Path) : 가장 짧은 경로를 찾는 알고리즘 1) 최단 경로 문제- 지점( 노드 ), 지점 간 연결된 도로( 간선 ) - 한 지점에서 다른..
99클럽 코테 스터디 8일차 TIL - DFS&BFS (백준2644- 촌수계산)
99클럽 코테 스터디 8일차 TIL - DFS&BFS (백준2644- 촌수계산)
2024.11.04https://www.acmicpc.net/problem/2644오늘의 학습 키워드 : DFS & BFS공부한 내용 예제1예제2DFS로 푼 경우import sys# 입력 처리n = int(sys.stdin.readline().strip()) # 총 사람의 수a, b = map(int, sys.stdin.readline().strip().split()) # 촌수를 계산할 두 사람m = int(sys.stdin.readline().strip()) # 관계의 수graph = [[] for _ in range(n + 1)] # 각 사람의 관계를 나타내는 인접 리스트# 관계 정보 입력for i in range(m): x, y = map(int, sys.stdin.readline().strip().sp..
영속성 관리 - 내부동작 방식
영속성 관리 - 내부동작 방식
2024.11.04JPA에서 가장 중요한 2가지1. 객체와 관계형 데이터베이스 매핑(설계)하기(Object Relational Mapping)2. 영속성 컨텍스트(실제 JPA가 어떻게 동작하는지) 영속성 컨텍스트 ⭐️엔티티를 영구 저장 환경EntityManager.persists(entity) EntityManager 는 영속성 컨텍스트를 관리하는 주체로, persist() 메서드를 통해 엔티티를 영속성 컨텍스트에 넣기. 이를 통해 객체는 영속 상태가 되며, 이후 트랜잭션이 커밋되면 해당 객체가 데이터베이스에 영구히 저장논리적임 개념눈에 보이는 물리적인 데이터 저장소가 아닌, 객체를 관리하는 논리적인 개념. 엔티티의 생명주기비영속 : 영속성 컨테스트와 전혀 관계가 없는 새로운 상태new member 객체를 생성하였..
99클럽 코테 스터디 7일차 TIL - (프로그래머스 - 모음사전)
99클럽 코테 스터디 7일차 TIL - (프로그래머스 - 모음사전)
2024.11.03프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr오늘의 학습 키워드 : 브루트 포스이론,,?공부한 내용 def solution(word): # 사전 순서대로의 모음 리스트 vowels = ['A', 'E', 'I', 'O', 'U'] # 각 자리에서 한 글자가 바뀔 때 뒤에 따라붙는 가능한 단어의 수 (가중치) # 첫 번째 자리의 가중치는 5^4 + 5^3 + 5^2 + 5^1 + 5^0 = 781 # 두 번째 자리의 가중치는 5^3 + 5^2 + 5^1 + 5^0 = 156 # 세 번째 자리의 가중치는 5^2 + 5^1 + 5^0 = 31 # 네 번째 자리의 ..
99클럽 코테 스터디 6일차 TIL - BFS (백준 2458번 - 키 순서)
99클럽 코테 스터디 6일차 TIL - BFS (백준 2458번 - 키 순서)
2024.11.03https://www.acmicpc.net/problem/2458오늘의 학습 키워드 : 플로이드 워셜, BFS공부한 내용 -> 그림은 코드 설명import sysfrom collections import deque # BFS 구현을 위한 deque 사용# 학생 수 N과 비교 횟수 M을 입력 받음N, M = map(int, sys.stdin.readline().strip().split())# 각 학생에 대한 인접 리스트 생성graph = [[] for _ in range(N + 1)] # 자신보다 큰 학생들을 저장하는 그래프reverse_graph = [[] for _ in range(N + 1)] # 자신보다 작은 학생들을 저장하는 그래프# 키 비교 관계 입력for i in range(M): ..
99클럽 코테 스터디 4일차 python TIL - 이분탐색(백준2512 예산)
99클럽 코테 스터디 4일차 python TIL - 이분탐색(백준2512 예산)
2024.11.01https://www.acmicpc.net/problem/2512 오늘의 학습 키워드 : 이분탐색공부한 내용import sys# 입력 처리N = int(sys.stdin.readline().strip()) # 지방의 수d = list(map(int, sys.stdin.readline().strip().split())) # 각 지방의 예산 요청M = int(sys.stdin.readline().strip()) # 총 예산# 이분 탐색 초기 설정start, end = 0, max(d)answer = 0# 이분 탐색 수행while start mid: result += mid # 상한액을 넘는 요청은 상한액으로 배정 else: result += i ..
99클럽 코테 스터디 3일차 python TIL - 이분탐색(프로그래머스 입국심사)
99클럽 코테 스터디 3일차 python TIL - 이분탐색(프로그래머스 입국심사)
2024.11.01프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr오늘의 학습 키워드 : 이분탐색, DP 공부한 내용def solution(n, times): # 탐색 범위 설정: 최소 시간과 최대 시간 start = min(times) end = max(times) * n answer = 0 # 이분 탐색 while start = n: answer = mid # 가능한 최소 시간 저장 end = mid - 1 # 더 작은 시간 범위를 탐색 else: start = mid + 1 # 더 많은 시간을 필요로 하는 범위..
99클럽 코테 스터디 2일차 TIL - 이분탐색 (백준 1072번 )
99클럽 코테 스터디 2일차 TIL - 이분탐색 (백준 1072번 )
2024.10.29https://www.acmicpc.net/problem/11561 오늘의 학습 키워드 : 이분탐색공부한 내용import sysimport math# 테스트 케이스의 수T = int(sys.stdin.readline().strip())for _ in range(T): N = int(sys.stdin.readline().strip()) # 1. 최대 점프 횟수의 추정값을 구합니다. max_jump = math.isqrt(2 * N) # math.isqrt()는 정수 제곱근을 구해줌 # 2. 가장 큰 max_jump 값 중에서 조건을 만족하는 최대 값 찾기 if max_jump * (max_jump + 1) // 2 오늘의 회고일단 나는 항상 문제를 풀면,, 알고리즘보다..
99클럽 코테 스터디 1일차 TIL - 이분탐색 (백준 1072번 )
99클럽 코테 스터디 1일차 TIL - 이분탐색 (백준 1072번 )
2024.10.28https://www.acmicpc.net/problem/1072 오늘의 학습 키워드 : 이분탐색공부한 내용import sys#게임 횟수 X, 승리 횟수 YX,Y = map(int,sys.stdin.readline().strip().split())#재귀형 이진 탐색 함수 정의def binary_search(X,Y,start,end): #1.종료-> start가 최소 게임 횟수 나타냄. if start>end: return start #중간값 mid = (start+end)//2 # print("mid : ",mid) #mid 계산 후 승률 다시 계산(NEW Z) result = (Y+mid)*100//(X+mid) #2.새로 ..
Hello JPA - 애플리케이션 개발
Hello JPA - 애플리케이션 개발
2024.10.24주의할점 1. h2와 persistence.xml 의 url 값을 동일, 사용자(user) 값 동일, 비밀번호(password) 값 동일 데이터베이스 방언⭐️특정 데이터베이스에 종속 X ( ex. MySQL쓰다가 Oracle로 변경해도 변경되어야함)각각의 데이터 베이스가 제공하는 SQL 문법과 함수가 다름가변 문자: MySQL- VARCHAR, Oracle- VARCHAR2 문자열을 자르는 함수: SQL - SUBSTRING(), Oracle - SUBSTR()페이징 : MySQL - LIMIT, Oracle - RWONUM방언 : SQL표준을 지키지 않는 특정 데이터베이스만의 고유한 기능H2를 사용할 때 방언이 중요한 이유는, 만약 H2를 테스트 용도로 사용하고 실제 운영에서는 다른 DBMS(MySQL..
자바 ORM 표준 JPA 프로그래밍 - JPA 시작하기(맞는 버전 찾기)
자바 ORM 표준 JPA 프로그래밍 - JPA 시작하기(맞는 버전 찾기)
2024.10.23JPA를 시작하기 위해서 지금 버전이 다르게 설정하고 싶기에 설정이 달라져서 그런걸 끄적끄적 해볼까 한다. 1. 인텔리제이 시작하기 (나같은 경우에는 자바 17버전으로 설정) 2. pom.xml에서 dependencies 추가 해야하는 부분이 스프링부트 3으로 시작하고 싶어서 이 부분이 조금 다르다. > 이부분에서 버전 맞는 부분을 찾는 방법 https://spring.io 링크 접속 -> project Spring Boot 클릭 Spring Boot의 Learn을 눌러서 내가 다운 받고 싶은 Spring Boot 버전 찾기(나같은 경우에는 3.0.13버전을 쓰고 싶었기에 Reference Doc 클릭하기)가장 마지막에 있는 Dependency Versions 선택하기 내가 다운 받고 싶은 이름 검색하..
백준 2164번(카드2) - 큐, 자료구조
백준 2164번(카드2) - 큐, 자료구조
2024.10.21https://www.acmicpc.net/problem/2164 ❓ python 풀이 - 규칙 찾아서 풀었따...내가 생각한 규칙은1(2^0)12(2^1)232*(3-2) = 24(2^2)452*(5-4) = 262*(6-4) = 472*(7-4) = 68(2^3)892102*(10-8) = 2112*(11-8) = 2122*(12-8) = 2132*(13-8) = 2142*(14-8) = 2152*(15-8) = 216(2^4)162의 거듭제곱인 경우:2의 거듭제곱에 해당하는 수는 그대로 남습니다. 예를 들어, 1, 2, 4, 8, 16은 그대로 해당 값이 남습니다.즉, 2^n인 경우 마지막 남는 카드는 그 값 그대로입니다.2의 거듭제곱보다 큰 수인 경우:2의 거듭제곱을 기준으로 해당 수(N)에서 ..
백준 10733번 (제로) - 자료구조, 스택
백준 10733번 (제로) - 자료구조, 스택
2024.10.21https://www.acmicpc.net/problem/10773 ❓ python 풀이import sysinput = sys.stdin.readline i = int(input().strip()) # 입력받을 정수의 개수 Kstack = [] # 숫자를 저장할 스택을 초기화for _ in range(i): # K번 반복하며 정수를 입력받음 put = int(input().strip()) # 입력받은 숫자를 정수로 변환 if put != 0: # 0이 아닐 경우 스택에 해당 숫자를 추가 stack.append(put) else: stack.pop() # 0일 경우 가장 최근에 입력된 숫자를 스택에서 제거print(sum(stack)) # 스택에 남아..
백준 10828(스택) - 스택, 자료구조
백준 10828(스택) - 스택, 자료구조
2024.10.14https://www.acmicpc.net/problem/10828 ❓ python 풀이import sysinput = sys.stdin.readline n = int(input().strip()) # 명령의 수stack = []for _ in range(n): command = input().strip().split() if command[0] == "push": stack.append(int(command[1])) elif command[0] == "pop": print(stack.pop() if stack else -1) #stack이 들어있을 경우 pop,else -1 elif command[0] == "size": print(len(..