일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 데이터베이스
- java
- 이펙티브 자바
- http
- 자바
- docker
- 네트워크
- Effective Java
- 프로그래머스
- 백준
- 벨먼-포드
- JIRA
- 트랜잭션
- 국제화
- kotlinglogging
- http 완벽가이드
- 도커
- AWS
- 커스텀예외
- Spring
- 메시지
- githubactions
- 토이프로젝트
- 스프링부트
- 파이썬
- CI/CD
- restControllerAdvice
- 스프링
- yaml-resource-bundle
- Today
- Total
목록분류 전체보기 (90)
땃쥐네
문제 번호 : 120866 제목 : 안전지대 난이도 : Level 0 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return 문제 : 링크 필요 알고리즘 인접 방향 배열 private static final int[] DIRECTION_ROW = {0, 1, 1, 1, 0, -1, -1, -1}; // 동 동남 남 남서 서 북서 북 북동 private static final int[] DIRECTION_COLUMN = {1, 1, 0, -1, -1, -1, 0, 1}; // 동 동남 남 남서 서 북서 북 북동 어떤 한 좌표를 기준으로 인접한 방향의 인덱스와의 좌표차(행, 열) 배열로 선언하면 편리한 경우가 많다. 배열 문제의 경우 row, column을 사용하는 것이 편리하고, 수학적인 ..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 명령어 - 명령어는 연산 코드와, 0개 또는 1개 이상의 오퍼랜드(피연산자)들로 이루어져 있다. - 명령어 역시 실제로는 0과 1의 비트로 구성되어 있다. 1. 연산 코드 1.1 연산 코드(operation-code) 연산코드 : 명령어가 수행할 연산 연산코드 필드 : 연산코드가 담기는 영역을 연산 코드 필드라고 한다. 1.2 연산 코드의 종류 데이터 전송 산술/논리 연산 제어 흐름 변경 입출력 제어 명령어의 종류와 생김새는 CPU마다 다르기 때문에, 연산코드 종류마다 다르다. 아래에서 서술할 연산코드는 대충 각 CPU마다 공통으로 이해하는 대표적인 연산코드 종류 정도로만 이해하면 된다. 1.3..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 1. 고급 언어, 저급 언어 1.1 고급 언어(high-level programming language) 사람을 위한 언어 사람이 이해하고 작성하기 쉽게 만들어진 언어 예) C, C++, Java, Python, ... 1.2 저급 언어(low-level programming language) 컴퓨터가 직접 이해하고 실행할 수 있는 언어 '명령어'로 이루어져 있다. 고급 언어로 작성된 코드가 실행되려면 반드시 저급 언어로 변환되어야 한다. 2. 저급 언어의 종류 : 기계어와 어셈블리어 2.1 기계어 0과 1의 명령어 비트로 이루어진 언어 다만, 이진수로 나열하면 너무 길어지기 때문에 가독성을 위..
문제 번호 : 120846 제목 : 합성수 찾기 난이도 : Level 0 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return 문제 : 링크 필요 알고리즘 소수 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수 합성수 1보다 큰 자연수 중에서 소수가 아닌 수 약수의 개수가 3개 이상인 수 둘 이상의 소수를 곱한 자연수 에라토스테네스의 체 특정 범위의 자연수들의 소수, 합성수 여부를 판단하는 가장 기본적인 알고리즘 1은 소수도 합성수도 아니다. (알고리즘 풀 때 이 부분을 놓치는 경우가 있어서 문제를 잘 읽고 이 부분을 문제에 맞게 잘 체크해야한다.) 2부터 시작한다. 2는 합성수로 체크되어 있지 않으므로 소수이다. 2보다 큰 2의 배수는 모두 합성수이므로 이들을 모두 합성수로 ..
문제 플랫폼 : 프로그래머스 번호 : 042576 제목 : 완주하지 못한 선수 난이도 : Level 1 완주하지 못한 선수의 이름을 return 문제 : 링크 필요 지식 해시 파이썬 : Counter 풀이 Python 풀이1 from collections import Counter def solution(participant, completion): participant, completion = Counter(participant), Counter(completion) for key, value in participant.items(): if key not in completion or completion[key] != value: return key 파이썬에서는 Counter를 통해, 각각의 요소들의 ..
문제 번호 : 120840 제목 : 구슬을 나누는 경우의 수 난이도 : Level 0 서로 다른 balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수 문제 : 링크 필요 알고리즘 재귀 함수에 대한 이해가 필요하다. 조합수에 대한 간단한 이해가 필요하다. (고등학교 수학) 조합수는 n개의 요소에서 r개의 요소를 선택하는 경우의 수이다. 이 글에서는 n개의 요소에서 r개의 요소를 선택하는 조합수를 comb(n,r)이라 할 것이다. 조합수의 성질 comb(n,r) == comb(n, n-r) : n개의 요소에서 r개를 택하는 것은, 나머지 n-r개를 결정하는 것과 같다. comb(n,1) == comb(n,n-1) == n : n개의 요소에서 1개를 택하는 경우의 수는 n가지이다. com..
문제 번호 : 064061 제목 : 크레인 인형뽑기 게임 난이도 : Level 1 문제 : 링크 필요 알고리즘 Stack 자료구조에 대한 이해가 필요하다. java에서 Stack을 사용할 때는 java.util.Stack 을 사용한다. push(삽입), pop(추출), peek(마지막 요소 확인), isEmpty 메서드를 잘 사용하면 된다. Stack에 아무 요소가 없을 가능성이 있으므로 추출할 때는 isEmpty 메서드를 사용해 요소의 존재 여부를 파악해야 한다. peek 메서드를 통해 마지막 요소를 확인할 수 있다. 풀이 github 링크 : 링크 전체 로직 public class Solution { private static int answer = 0; public int solution(int[]..
오브젝트의 15장을 읽으며 디자인 패턴 이야기가 나온 부분에서 Composite 패턴을 접했는데, 최근 SpringSecurity의 DelegatingPasswordEncoder 코드를 확인하는 과정에서 컴포짓 패턴이 적용된 것을 확인하게 되었고 컴포짓 패턴이 무엇인지 간단하게 정리해보기로 했다. 클라이언트와 Component의 컴파일 의존관계 - 어떤 객체가 '클라이언트'에게 foo 메시지를 전송하였다. - 클라이언트는 foo 메시지에 자기 나름의 방식대로 처리(메서드)하고 응답 할 책임을 가진다. - 하지만 이 과정에서 클라이언트 스스로 처리할 수 없는 일은 내부적으로 알고 있는 Component 역할에게 operation() 메시지를 전송하여 협력을 요청한다. - Component 역할을 수행할 수..