분류 전체보기 233

백준 3190 - 뱀

문제https://www.acmicpc.net/problem/3190 3190번: 뱀문제  'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따www.acmicpc.net  풀이문제에 나와있는 순서대로 구현을 해주면 된다. 특별히 신경 쓴 부분은 종료조건과 꼬리의 이동 부분이다.  뱀의 몸이 있는 공간을 chec..

BOJ/미해결 2024.08.04

백준 9375 - 패션왕 신해빈

문제https://www.acmicpc.net/problem/9375  풀이headgear 의상 종류에 대해서 현재 hat, truban이 있다이때 가능한 경우의 수는 {hat}, {turban}, {}(공집합) 3가지 이다 모든 옷 종류에 대해서 각각 가능한 경우의 수를 곱하고 모든 옷 종류를 하나도 안 입는 경우(1가지)를 빼주면 된다  코드python123456789101112131415161718t = int(input()) for _ in range(t):    n = int(input())    d = {}    for _ in range(n):        clothes, category = input().split()        if category not in d:            ..

BOJ/미해결 2024.08.03

백준 11279 - 최대 힙

문제https://www.acmicpc.net/problem/11279  풀이우선순위 큐를 이용해 O(n * logⁿ) 시간복잡도로 해결한다 파이썬에서는 heapq 라이브러리를 이용해 최소 힙으로 우선순위 큐를 사용할 수 있다문제에서 최대 값을 찾아야하므로 숫자를 저장할 때 음수로 바꿔서 저장하면 최대 힙처럼 사용할 수 있다  코드python12345678910111213141516import heapqimport sys n = int(input()) heap = [] for _ in range(n):    x = int(sys.stdin.readline())    if x == 0:        if heap:            print(-heapq.heappop(heap))        else:..

BOJ 2024.08.02

파이썬 우선순위 큐

파이썬에서는 우선순위 큐를 사용할 때 heapq 라이브러리를 이용한다heapq 자체는 최소 힙을 기반으로 구현돼 있다따라서 -5 같은 음수 값으로 힙을 구성하면 최대 힙처럼 만들 수도 있다 다음과 같은 함수가 제공된다 heapq.heappush(heap, item)힙 불변성을 유지하면서, item 값을 heap으로 푸시한다 heapq.heappop(heap)힙 불변성을 유지하면서, heap에서 가장 작은 항목을 팝하고 반환한다힙이 비어 있으면, IndexError가 발생한다팝 하지 않고 가장 작은 항목에 액세스하려면, heap[0]을 사용한다 heapq.heapify(x)리스트 x를 선형 시간으로 힙으로 변환한다 1234567891011121314import heapq  heap = [] heapq.he..

알고리즘 2024.08.02

Swagger + RestDocs 연동

새로운 미션Swagger와 RestDocs를 연동해보라는 미션을 받았다.Swagger?Swagger 는 REST API를 설계, 빌드, 문서화 및 사용하는 데 도움이되는 OpenAPI 사양을 중심으로 구축 된 오픈 소스 도구 세트입니다. - About Swagger SpecificationSwagger를 사용하면 API를 테스트 할 수 있는 UI를 제공해준다.RestDocs는 테스트를 실행하면서 성공하는지 실패하는지 확인하지만 Swagger는 문서 화면에서 API를 테스트 할 수 있다.Restdocs에서 OpenAPI Spec 추출Swagger UI 를 이용해 OpenAPI Spec 문서를 브라우저에서 확인할 수 있다.이를 위해 Restdocs에서 OpenAPI Spec을 추출한다.자세한 내용은 다음 g..

트러블 슈팅 2024.07.25

엔터티 update 후 findById vs findAll

같은 트랙잭션 내에서 save를 통해 엔터티 업데이트를 실행한 후 findById, findAll 메소드를 실행해봤다. findById() 시 update 쿼리 안 나감findById를 통해 엔터티를 찾았을 때는 update, select 다 발생하지 않았다.findAll() 메소드 실행 시 update 쿼리 후 select 쿼리 날라감findAll을 통해 엔터티를 찾았을 때는 update 쿼리 발행 후 select 쿼리가 발생했다. Flush 발생 조건 1. flush 메소드를 직접 호출2. 트랜잭션 커밋 시3. JPQL 쿼리 실행 시 플러시 자동 호출 findAll 메소드는 엔터티매니저가 아닌 DB에 직접 요청하기 때문에 동기화를 위해 flush를 실행 한다.Critieria를 통해 findAll 메..

스프링 부트 2024.07.24

로그인 성공 후 Response Header의 Token이 없음

로그인 API 요청 성공 시 헤더에 Token 값을 실어서 응답했다.로그인 API 응답 성공하고 Postman, 크롬 Network 탭에는 헤더에 Authenticaion: 토큰 값이 잘 들어갔다.하지만 리액트 콘솔에서는 Authentication이 뜨지 않아 토큰 값을 가져올 수 없는 문제가 발생했다. 해결다음과 같이 스프링에서 exposeHeaders에 Authenticaion을 추가한다.  Axios는 왜 CORS를 발생시킬까MDN 문서에 따르면 CORS를 발생시키는 요청은 다음과 같다.다음은 Axios 공식 문서 소개 중 일부다.  What is Axios?Axios is a *[promise-based](https://javascript.info/promise-basics)* HTTP Clien..

트러블 슈팅 2024.07.22

BOJ 10799 - 쇠막대기

문제https://www.acmicpc.net/problem/10799  풀이스택을 이용해 문제를 풀 수 있다 레이저가 발사되면 스택에 쇠막대기가 쌓인 만큼 조각이 추가된다 입력한 문자열을 탐색하면서 다음 과정을 반복한다  '('를 만나면 스택에 push 한다 ')'를 만나면 스택에서 '('를 pop한다. 이때 () 처럼 연속되어서 레이저로 나가는지 확인해야 한다인덱스 차이가 1이면 레이저로 나간다그렇지 않으면 막대기의 길이가 끝나는 것이다인덱스 차이가 1이면 스택의 크기만큼 총 개수에 추가한다 (스택의 크기만큼 조각이 생긴다)그렇지 않으면 총 개수에 1을 추가한다 (막대기의 마지막 조각)   코드python1234567891011121314151617brackets = input() stack = []..

BOJ 2024.07.15

2024.06.11 한국 중국 축구 중계방송 무료 보기

경기 일정 및 장소일정: 2024년 6월 11일(화) 오후 8시장소: 서울 월드컵 경기장 중계방송 무료 보기중계방송을 시청하고자 하신다면 TV조선 및 쿠팡플레이를 통해 무료로 시청할 수 있습니다.  TV조선 시청하기 https://www.tvchosun.com/channel/channel.cstv 번호안내전남 나주시, 화순군, 보성군, 담양군, 장성군, 영광군, 함평군, 구례군, 곡성군 CMB 19 19-1 116 91-1 45-2 목포시, 무안군, 신안군, 장흥군, 강진군, 해남군, 영암군, 진도군, 완도군 LG헬로비전 20 19-1 85 1www.tvchosun.com  쿠팡플레이 시청하기https://www.coupangplay.com/ 쿠팡플레이지원되지 않는 브라우저입니다 엣지, 크롬 또는 사파리..

카테고리 없음 2024.06.11

외부설정과 프로필2

해당 게시물은 인프런 - "스프링 부트 - 핵심 원리와 활용" 강의를 참고하여 작성한 글 입니다유료강의이므로 자세한 내용은 없고, 간단한 설명 위주로 정리했습니다강의 링크Environment다음과 같은 외부 설정은 스프링이 제공하는 Environment를 통해서 일관된 방식으로 조회할 수 있다설정 데이터(application.properties)OS 환경변수자바 시스템 속성커맨드 라인 옵션 인수application.properties 예시my.datasource.url=local.db.commy.datasource.username=local_usermy.datasource.password=local_pwmy.datasource.etc.max-connection=1my.datasource.etc.timeo..

스프링 부트 2024.06.07