모든 글 202

백준 10451번 순열 사이클 (java)

[Silver III] 순열 사이클 - 10451문제 링크성능 요약메모리: 52020 KB, 시간: 476 ms분류그래프 이론, 그래프 탐색, 순열 사이클 분할제출 일자2024년 8월 5일 22:42:56 문제1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 (1234567832781456)와 같다. 또는, Figure 1과 같이 방향 그래프로 나타낼 수도 있다.순열을 배열을 이용해 (1…i…nπ1…πi…πn)로 나타냈다면, i에서 πi로 간선을 이어 그래프로 만들 수 있다.Figure 1에 나와있는 것 처럼, 순열 그래프 (3, 2, 7, 8, 1, 4, 5, 6) ..

백준 2664번 촌수계산 (java)

[Silver II] 촌수계산 - 2644문제 링크성능 요약메모리: 14192 KB, 시간: 100 ms분류그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색제출 일자2024년 8월 5일 21:13:49문제 설명우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다.여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그..

백준 2606번 바이러스(java)

[Silver III] 바이러스 - 2606문제 링크성능 요약메모리: 14456 KB, 시간: 100 ms분류그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색제출 일자2024년 8월 4일 19:27:57문제 설명신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되..

[JPA] 객체 지향 쿼리 언어 JPQL 5 (경로 표현식, fetch join)

경로 표현식.(점)을 찍어 객체 그래프를 탐색하는 것이다. select m.username -> 상태필드로 객체를 탐색한 경우from Member m   join m.team t -> 단일 값 연관 필드 (여기서 team은 엔티티기 때문에 단일 값을 탐색한 것이다.)   join m.orders o -> 컬렉션 값 연관 필드 (여기서 orders는 컬렉션이어서 컬렉션을 탐색한 것이다.)where t.name = '팀A' .을 통해 상태 필드로 가냐, 단일 값 연과 필드로 가냐, 컬렉션 값 연관 필드로 가냐에 따라서내부적으로 동작하는 방식이 다 달라진다.  용어 정리상태 필드: 단순히 값을 저장하기 위한 필드다 (ex: m.username)연관 필드: 연관 관계를 위한 필드다단일 값 연관 필드: @Many..

spring/JPA 2024.08.04

백준 11558번 The Game of Death(java)

[Silver IV] The Game of Death - 11558문제 링크성능 요약메모리: 19304 KB, 시간: 156 ms분류그래프 이론, 그래프 탐색, 구현, 시뮬레이션제출 일자2024년 8월 3일 18:57:30문제 설명희현이와 주경이는 The Game of Death를 좋아한다.The Game of Death 규칙:플레이어는 각자 한 명씩 지목을 한다(자신도 가능).처음 시작하는 사람은 임의의 자연수 K를 말한다.시작한 사람부터 지목한 사람을 차례대로 따라가다가 K번째 지목당한 사람이 걸리게 된다.희현이는 희현이부터 이 게임을 시작할 때 이 게임에서 반드시 주경이를 반드시! 걸리게 하고 싶다. 주경이가 걸릴 수 있도록 희현이를 도와주자.입력첫 줄에는 테스트 케이스의 숫자 T가 주어지며, 이어..

백준 2331번 반복수열(java)

[Silver IV] 반복수열 - 2331문제 링크성능 요약메모리: 14164 KB, 시간: 104 ms분류구현, 수학제출 일자2024년 8월 3일 18:24:05문제 설명다음과 같이 정의된 수열이 있다.D[1] = AD[n] = D[n-1]의 각 자리의 숫자를 P번 곱한 수들의 합예를 들어 A=57, P=2일 때, 수열 D는 [57, 74(=52+72=25+49), 65, 61, 37, 58, 89, 145, 42, 20, 4, 16, 37, …]이 된다. 그 뒤에는 앞서 나온 수들(57부터가 아니라 58부터)이 반복된다.이와 같은 수열을 계속 구하다 보면 언젠가 이와 같은 반복수열이 된다. 이때, 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 구하는 프로그램을 작성하시오. 위의 예에서..

[CoolSMS] SMS, 문자 전송 및 인증 기능 구현하기

문자 전송 API 서비스https://coolsms.co.kr/ 세상에서 가장 안정적이고 빠른 메시지 발송 플랫폼 - 쿨에스엠에스손쉬운 결제 전용계좌, 신용카드, 계좌이체 등 국내 결제 뿐만 아니라 해용신용카드로 한번의 카드번호 등록으로 자동충전까지 지원합니다. 전용계좌, 신용카드, 계좌이체 등 다양한 결제 방식coolsms.co.kr여러 가지 문자 전송 api가 존재한다. 그 중 coolsms는 첫 회원 가입시 200원을 무료로 충전해주고 Spring과 연동이 쉽다.때문에 coolsms를 선택하게 되었다. 회원 가입우선 coolsms에 회원 가입을 진행하고 다음과 같이 api key를 발급받아 주도록 하자. Build.gradleimplementation 'net.nurigo:sdk:4.3.0' coo..

[JPA] 객체 지향 쿼리 언어 JPQL 4(기본 문법 - 조인, 서브쿼리, 조건식 , 기본 함수)

조인내부 조인:select m from Member m [inner] join m.team t외부 조인:select m from Member m left [outer] join m.team t세타 조인:select count(m) from Member m, Team t where m.username = t.name[]는 생략이 가능하다. 조인 - ON 절조인 대상 필터링이 가능하다.예) 회원과 팀을 조인하면서, 팀 이름이 A인 팀만 조인JPQL: select m, t from Member m left join m.team t on t.name = 'A'SQL: select m.*,t.* from Member M left join Team t on m.team_id = t.id and t.name = 'A..

spring/JPA 2024.08.03

백준 1747번 소수&팰린드롬(java)

[Silver I] 소수&팰린드롬 - 1747문제 링크성능 요약메모리: 70660 KB, 시간: 260 ms분류브루트포스 알고리즘, 수학, 정수론, 소수 판정, 에라토스테네스의 체제출 일자2024년 8월 2일 18:17:58문제 설명어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다.출력첫째 줄에 조건을 만족하는 수를 출력한다.풀이소수와 팰린드롬을 동시에 만족하는 숫자를 찾는 문제다. 소수는 1과 자기 자신을 제외한 수 중 약..

백준 2531번 회전 초밥(java)

[Silver I] 회전 초밥 - 2531문제 링크성능 요약메모리: 18644 KB, 시간: 196 ms분류브루트포스 알고리즘, 슬라이딩 윈도우, 두 포인터제출 일자2024년 8월 2일 05:04:08문제 설명회전 초밥 음식점에는 회전하는 벨트 위에 여러 가지 종류의 초밥이 접시에 담겨 놓여 있고, 손님은 이 중에서 자기가 좋아하는 초밥을 골라서 먹는다. 초밥의 종류를 번호로 표현할 때, 다음 그림은 회전 초밥 음식점의 벨트 상태의 예를 보여주고 있다. 벨트 위에는 같은 종류의 초밥이 둘 이상 있을 수 있다.새로 문을 연 회전 초밥 음식점이 불경기로 영업이 어려워서, 다음과 같이 두 가지 행사를 통해서 매상을 올리고자 한다.원래 회전 초밥은 손님이 마음대로 초밥을 고르고, 먹은 초밥만큼 식대를 계산하지만..