전체 글 474

[Python/BOJ] 백준 1407 2로 몇 번 나누어질까_수학

완탐으로 열심히 풀어봤지만 결과는 메모리초과..시간 초과...... 문제의 분류를 보니 수학이었다. 역시 완탐이 아니라 머리를 써서 공식을 알아내야하는 문제다. 코드 : def cal(num) : if num ==0 : return 0 elif num == 1 : return 1 elif num %2 ==0 : return num // 2 + 2*cal(num//2) elif num %2 == 1 : return num //2 + 2*cal(num//2) +1 if __name__=="__main__" : a,b = map(int,input().split()) print(cal(b) - cal(a-1)) 이런 수학 문제가 코테에 나오나...... 참고 블로그 : https://dkrnfls.tistory..

[Python/BOJ] 백준 1034 램프_아이디어가 핵심

완탐인가 했는데 완탐은 맞다. 다만 아이디어를 곁들인... 대체 이런 아이디어는 어떻게 떠올리는지 궁금하다. 1. 먼저 행별로 0의 개수를 구한다. 2. 조건에 부합한 행을 찾는다. 2-1. 0의 개수가 k(변환 횟수)보다 크다면 k번을 다 뒤집어도 다 켜질수가 없으므로 첫번째 조건은 0의 개수가 k보다 작거나 같다. 2-2. 그리고 두번 째 조건은 0의 개수가 짝수라면 k도 짝수 , 0의 개수가 홀수라면 k도 홀수여야한다. 그 이유는 k 보다 작은 0들을 모두 1로 바꾼 다음 남은 k의 값이 짝수여야만 불이 켜진 상태를 유지할 수 있기 때문이다. 만약 0이 짝수고 k도 짝수라면 k의 개수에서 0을 빼면 남는 값은 짝수이다. 만약 0이 홀수고 k도 홀수라면 k의 개수에서 0을 빼면 남는 값은 짝수이다. ..

[Python/BOJ] 백준 1976 여행가자_유니온파인드

🐾 20220923 처음 DFS로 풀었다가 recursion Error로 까였다. 이렇게 생긴문제는 유니온파인드를 꼭 생각해서 풀어야겠다. 간단하게 유니온 파인드를 정리해서 포스팅 해봤다. https://what-am-i.tistory.com/371?category=1000199 [python]유니온파인드 알고리즘_이것도 알아야해? 유니온 파인드 : 노드를 UNION하고 부모를 FIND해서 서로소 집합을 찾아내는 알고리즘 UNION연산은 두 원소를 뽑아 원소가 포함된 집합의 부모노드를 비교한다. 만약 다르다면 같은 부모를 가리키도 what-am-i.tistory.com 1. 입력받은 도시의 연결 여부를 이용해 서로소 집합을 만든다. 1-2. UNION - 부모 노드를 구해 비교한다. 다르면 동일하도록 만..

[python]유니온파인드 알고리즘_이것도 알아야해?

유니온 파인드 : 노드를 UNION하고 부모를 FIND해서 서로소 집합을 찾아내는 알고리즘 UNION연산은 두 원소를 뽑아 원소가 포함된 집합의 부모노드를 비교한다. 만약 다르다면 같은 부모를 가리키도록 만든다. FIND 연산은 특정한 원소가 속한 집합이 어떤 집합인지 알려주는 연산이다. 부모노드를 찾아 반환하게 만들면 전부 돌면서 찾아야하는 수가 있다. (시간이 너무 오래걸릴수도) 그래서 일일이 거슬러 부모노드를 찾는 것보다 한번에 빠르게 부모 노드에 갈 수 있도록 하는 경로 압축기법을 사용하면 빠르다. 코드 : def union(a,b) : a = find(a) b = find(b) if a > b : parent[a] = b elif a ..

영속성 컨텍스트, 엔티티의 생명주기

영속성 컨텍스트 > "엔티티를 영구 저장하는 환경" - J2SE 환경 기준 - EntityManager.persist(entity); DB에 저장한다는 의미가 아니라 entity를 영속성 컨텍스트에 저장한다는 의미 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있다. EntityManager와 영속성 컨텍스트가 1:1 관계이다. 엔티티의 생명주기 1. 비영속 상태 > 멤버 객체를 생성만한 상태 2. 영속 상태 > 객체 생성후 엔티티 매니저를 통해 persist해서 객체를 영속 컨텍스트에 넣는다. 3. 준영속 상태 > detach , 영속 상태의 엔티티가 영속성 컨텍스트에서 분리 4. 삭제 상태 > DB에서 객체를 삭제 영속성 컨텍스트의 이점 !! 1. 1차 캐시 key : pk value : enti..

[애플리케이션 개발]persistence_entityManagerFactory, 엔티티 생성

JPA에는 persistence가 있다. persistence는 persistence.xml에서의 정보를 가지고 EntityManagerFactory를 만든다. EntityManagerFactory는 EntityManager를 만든다. EntityManagerFactory 는 딱 하나만 만들어야한다. 일관적인 단위를 하나 할 때는 EntityManager 이용 (고객의 요청이 올 때마다) EntityManager 는 쓰레드간 공유 X , 사용하면 버려야함 JPA를 사용하면 내부에서 JDBC API를 사용해 SQL를 호출하여 DB와 통신한다. 아래 어노테이션을 사용해 엔티티를 생성한다. https://what-am-i.tistory.com/357?category=1083625 @Entity, @Table,..

[Python/BOJ] 백준 12100 2048(EASY)_확인방향을 어떻게 해야할지 _[DFS,백트래킹,구현]

복습 : 🎉 20220911 🐾 20220916 백트래킹 문제인데 숫자들을 상하좌우 각각 구분해서 다르게 합쳐주는 코드를 만드는 것이 쉽지않았다. 밑 그림과 같이 블록을 확인하면된다. 그 이유는 곰곰히 생각하면 알 수 있다. 상은 위로 블록들을 올리는데 동일한 값의 블록을 찾아야하고 이동하려는 쪽의 칸이 먼저 합쳐지기때문에 위에서 아래로 탐색한다. 좌를 설명해보면 왼쪽으로 블록을 옮기므로 블록이 합해지는 것이 왼쪽에서 오른쪽으로 탐색해야한다. 코드 : from collections import deque import copy def get(i,j) : if mp[i][j] : q.append(mp[i][j]) mp[i][j] = 0 def merge(i,j,di,dj) : # 보드에 있는 칸들을 돌면서 ..

[Python/BOJ] 백준 14226 이모티콘_BFS

https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 뭔가 DFS인것 같아서 DFS로 풀려고했는데 깊이가 너무 깊다고 까였다.... 정답을 찾아보니 다들 BFS로 풀이되어있었다. 최소시간을 구하다보니 그런것 같다. 최솟값 -> BFS 3가지의 연산이 있다. 1. 클립보드에 저장 2. 클립보드의 이모티콘 화면에 저장 3. 화면의 이모티콘 하나 삭제 화면에 있는 이모티콘과 클립보드에 있는 이모티콘의 개수, 그때의 시간 이 3가지의 값을 저장하기위해서 2차..

🎉2022_summer_고려대 해커톤 후기_우리구장⚽🎉_[ku summer hackathon]

2022_8_19 ~ 2022_8_21 동안 고려대에서 주최한 해커톤에 참가였다. 이번 해커톤에서 개발자(백엔드)로 참가하였다. 기념품도 풍성하게 받고 다양한 사람들과 만나고 협업하여 결과물을 만들었다. 평소와는 다른 생각을 할 수있었어서 좋았다. 나의 부족함을 알게되었고 세상에는 좋은 사람이 생각보다 많다는 것도 깨달았다. 팀원들과 2박 3일을 거의 계속 함께 있었는데 다들 성격도 좋고 하고자하는 의지가 강했다. 열정은 전염되기에 나까지 으쌰으쌰할 수 있었다.🔥 다만 아쉬운게 있었다면 호텔과 행사장의 거리가 멀었다는 것이다. 걸어서 40분, 버스로 20분이었다. 호텔은 2인실 혹은 1인실로 무작위로 배정되었는데 나는 운좋게 1인실로 배정되어 편하게 사용할 수 있었다. 이번 해커톤의 주제는 "함께하는 사..

[AWS]ec2 연동&spring boot 프로젝트 배포 완료!!

트러블 슈팅 : https://techsoda.net/windows10-pem-file-permission-settings/ 윈도우10 SSH 접속시 PEM 파일 퍼미션 에러 해결방법 - 테크소다 이 글은 윈도우10에서 BASH, WSL, 파워쉘을 통해 SSH 접속시 PEM 파일 퍼미션 에러가 날때 해결 방법에 대해서 다루고 있습니다. 윈도우10에서 OpenSSH 클라이언트를 설치하면 명령프롬프트나 윈도우 파 techsoda.net https://bcp0109.tistory.com/356 AWS 1편: EC2 생성 후 Spring Boot 띄우기 Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 ..