일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 국제화
- HandlerExceptionResolver
- 파이썬
- 트랜잭션
- Effective Java
- 메시지
- kotlinglogging
- http 완벽가이드
- 프로그래머스
- CI/CD
- githubactions
- 데이터베이스
- 벨먼-포드
- 토이프로젝트
- yaml-resource-bundle
- Spring
- 백준
- http
- AWS
- 스프링
- 네트워크
- 도커
- 커스텀예외
- docker
- 자바
- java
- JIRA
- 이펙티브 자바
- restControllerAdvice
- 스프링부트
- Today
- Total
목록분류 전체보기 (90)
땃쥐네
문제 플랫폼 : 백준 번호 : 01865 제목 : 웜홀 난이도 : Gold 3 만약에 시간이 줄어들면서 출발 위치로 돌아오는 것이 가능하면 YES, 불가능하면 NO를 출력 문제 : 링크 필요 지식, 해석 벨먼-포드 알고리즘 출발 정점에서 어떤 정점에 도착하기까지 기껏 많아봐야 N-1번의 간선을 순회하게 된다. 따라서 n-1번 모든 간선을 탐색하면서 이동비용을 최적화시키면 비용이 완전히 최적화된다. 그런데, 음의 사이클이 발생한다면 여기서 한 번 더 간선을 탐색했을 때 비용이 더 줄어드는 지점이 발생한다. 음의 가중치를 간선이 포함됐을 때 음의 사이클 발생여부 감지는 이 방식을 통해 수행하면 된다. 벨먼 포드 알고리즘의 시간복잡도는 O(NE)이다. 문제의 특수성 이 문제는 시작점이 주어지지 않았다. 각 지..
문제 플랫폼 : 백준 번호 : 10815 제목 : 숫자 카드 난이도 : Silver 5 첫째 줄에 입력으로 주어진 M개의 수에 대해서, 각 수가 적힌 숫자 카드를 상근이가 가지고 있으면 1을, 아니면 0을 공백으로 구분해 출력 문제 : 링크 필요 알고리즘 해시 이분탐색 풀이 풀이1 : 해시 import io, os, sys lines = io.BytesIO(os.read(0, os.fstat(0).st_size)).read().splitlines() print = sys.stdout.write a = set(n for n in lines[1].split()) print(' '.join('1' if x in a else '0' for x in lines[3].split())) set에 '상근이'가 가진 카..
문제 플랫폼 : 백준 번호 : 14503 제목 : 로봇 청소기 난이도 : Gold 5 로봇 청소기가 청소하는 칸의 개수를 출력 문제 : 링크 필요 지식 주기성과 나머지 : 무언가 주기적으로 반복되면, 배열의 요소를 순환하면서 반복하는 경우가 많은데 이 경우 순환 과정에서 인덱스를 벗어나게 되는 경우가 많다. 이런 상황에서는 나머지 연산을 사용하면 편리하다. 이 문제는 방향 배열을 사용하면 편리한 문제다. 방향 배열의 순서도 아무렇게 두기보다, 문제에서 주어진 조건에 맞게 시계 또는 반시계 방향으로 배치하면 편리하다. 문제에서는 북동남서 순으로 0,1,2,3을 제시해줬는데 이는 시계방향이다. 왼쪽 방향으로 순서대로 바라보므로 반시계 방향으로 순회할 때는 0, -1, -2, -3, ...(인덱스를 벗어나는데..
문제 플랫폼 : 백준 번호 : 02606 제목 : 바이러스 난이도 : Silver 3 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 프로그램을 작성 문제 : 링크 필요 알고리즘 DFS BFS 풀이 풀이1 : DFS import sys print = sys.stdout.write input = sys.stdin.readline n = int(input()) graph = {i: [] for i in range(1, n + 1)} check = [False] * (n + 1) for _ in range(int(input())): s, e = map(int, input().split()) graph[s].append(..
문제 플랫폼 : 프로그래머스 번호 : 131128 제목 : 숫자 짝꿍 난이도 : Level 1 두 정수 X, Y가 주어졌을 때 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들(중복 허용)을 이용하여 만들 수 있는 가장 큰 정수 반환 문제 : 링크 필요 지식 파이썬의 경우 카운터를 잘 사용하면 정말 쉽게 풀 수 있는 문제다. 문자열 처리 Python : Counter 풀이 from collections import Counter def solution(x, y): c = Counter(str(x)) & Counter(str(y)) return '-1' if not c else '0' if len(c) == 1 and '0' in c else ''.join(sorted(c.elements(), reverse..
문제 상황 백준의 2775번 문제를 풀고 있었다. 이 문제의 상황은 a층 b호에 사는 사람은 a-1층 1호부터 b호까지 사는 사람의 합만큼 사람이 살아야하는 규칙에서 n층 k호에 사는 사람의 수를 순서대로 출력하는 문제였다. (단, 0층 b호에는 b명이 산다.) 문제를 해결하기 위해서는 나는 바텀업 방식의 DP 알고리즘을 사용하기로 했다. numbers = [[0] * 15] * 15 for r in range(15): for c in range(15): if r == 0 or c == 0: numbers[r][c] = c else: numbers[r][c] = numbers[r][c-1] + numbers[r-1][c] print(f'{r}층 {c}호에는 {numbers[r][c]}명이 살아요.\n')..
이 글에서는 JavaScript 환경을 짤막하게 소개하고 이를 실습하기 위한 환경을 구축할 것이다. 자바스크립트 실행 환경 모든 웹 브라우저들은 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다. 또한 아래에서 후술할 Node.js 환경 역시 자바스크립트 엔진을 내장하고 있다. 자바스크립트는 브라우저 또는 Node.js 환경에서 실행될 수 있다. 더 정확히 말하면 이들은 자바스크립트의 코어에 해당하는 ECMAScript를 공통적으로 실행할 수 있다. ECMAScript : Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어. '자바스크립트'를 표준화하기 위해 만들어진 언어 각각의 브라우저는 ECMAScript 실행 ..
자바의 세계에 온 겻을 환영합니다. 1. JDK 설치 1.1 JDK? Java Development Kit, 자바 개발 도구 자바 어플리케이션을 개발하는데 필요한 도구들. 자세한 것은 뒷 부분에서 다루도록 함. 이걸 설치해야 자바 개발을 할 수 있다. 1.2 설치 Oracle에서 java 다운, 설치 : 링크 2023.01.29 기준 나는 최신의 LTS에 해당하는 jdk 17을 사용하고 있다. 실행 프로그램에서는 모두 yes를 눌러서 설치하면 됨 1.3 설치 확인 터미널에서 java --version을 입력해서 제대로 뜨는 지 확인 1.4 제거 제어판 > 프로그램 및 기능 > 프로그램 제거 또는 변경 jdk 제거 2. JDK의 bin 경로를 환경변수로 등록 사실 위의 JDK 설치만 놓고보면 그렇게 어렵진..