일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 그래프탐색
- 스케일아웃
- 트리셋
- 운영체제
- 백준
- 파이널프로젝트
- 폰켓몬
- 해시
- 임베디드타입
- SpringBatch
- CS
- 산업은행it
- 구현
- DB replication
- findById
- fatch
- flyway
- JPA
- CPU스케줄링
- 2178
- 프로젝트
- 컴퓨터구조
- 코테
- 트리맵
- Spring JPA
- 외래키제약조건위반
- springboot
- 산업은행청년인턴
- BFS
- 프로그래머스
- Today
- Total
목록분류 전체보기 (66)
나 JAVA 봐라
https://www.acmicpc.net/problem/1834 1834번: 나머지와 몫이 같은 수 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. www.acmicpc.net N 으로 나누기 때문에, 나머지는 최대 N-1이다 N=3 일 때를 예시로 들어보면 4 / 3 = 1..1 8 / 3 = 2..2 즉 , 나머지가 최대 N-1 일 때까지 계산한다. 4 = (3*1) + 1 8 = (3*2) + 2 int로 할 경우 표현할 수 있는 최대 수가 2147483647이기에, 그 이상의 수는 표현할 수 없다. (4바이트) long으로 할 경우 922337203..
https://www.acmicpc.net/problem/1357 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 단순히 String int 변환을 반복해주며, String에서 값을 거꾸로 뒤집어주면 된다. 마지막 최종 출력에서 int -> String으로 바꾸어서 String값을 출력할 때, 앞 글자가 0으로 시작할 수 있기에 flag 값을 둬서 0이면 출력하지 않도록 했다. +) 변환 메서드 같은 게 정확하게 기억이 안나서 각 잡고 외울 필요가 있음... +..
https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 수열은 1000번째까지 존재할 수 있으므로, 먼저 크기가 1000인 배열을 만들어 조건에 맞는 수열을 넣는다. ( int arr[] = new int[1000]) 수열을 초기화할 때에는 for문으로 1000번째까지 돌면서, cnt를 통해 숫자 n이 n만큼 배열에 입력되었는지 검사한다. A,B를 입력받은 후, 해당 배열에 접근하여 합을 구한다. package yejin.song; import java.io.Buffered..
초반에는 입력값을 받을 때, ArrayList arr[] = new ArrayList[10]; 과 같은 형식으로 받아서 temp[i]의 j에 해당하는 학생의 정보를 담으려고 했다. 근데 ArrayList와 배열을 함께 쓰는 방식이 익숙하지가 않고 아무리 봐도 적응되지 않아서 2차원 배열 + 3중 for문 방식으로 문제를 풀었다. 접근 방법 입력값은 그대로 input[N][5]의 2차원 배열에 넣기 배열을 학생 기준으로 순회하며 겹치는 횟수 count 하기 순회하기 위해 3중 for문이 사용된다. 1. 각각 i번째 학생 순회 (비교의 기준) 2. 함께 비교할 j번째 학생 : i==j 라면 continue; (-> 동일인물을 비교하면 안되기 때문) 3. i,j의 k학년 비교 : 두 학생이 한 번 같은 반 되..
보통 input에는 공백(" ")으로 구분되어 입력이 들어오는데, 이번에는 공백 없이 들어옴. .split("")으로 처리하거나, charAt으로 끊어서 처리하는 방법이 있다. 경비원을 가장 적게 배치하려면, 경비원이 필요한 가로-세로가 겹쳐지는 부분에 경비원을 두면 된다. 따라서 경비원이 필요한 행, 열의 갯수를 구한다. 만약 경비원이 필요한 행,열이 모두 0이면? -> 추가로 필요한 경비원 없으니까 0 return 행, 열 중 하나라도 경비원이 필요하면? -> 행, 열 중 더 큰 수 return package yejin.song; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; imp..
알아야 할 내용들 알파벳은 26개 int와 char는 호환하여 계산할 수 있음. char는 '' 와 같이 따옴표 씌워야하고 char-char, char-int 같이 계산할 수 있음. 이 때 캐스팅 해주어야 함. (코드 참고 package yejin.song; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BOJ_단어공부 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); St..
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net package yejin.song; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class B..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸www.acmicpc.net해당 문제에선 너무 많은 배열 변수들과 for문을 덮어써서 시간 초과날 줄 알았지만, 특별히 문제가 없었다. 내가 생각한 풀이 방법이다. 맵 정보를 입력받을 때, 집과 치킨집의 좌표 정보를 담은 배열을 저장한다.집( value = 1) : home.add치킨집(value = 2) : chicken.add모든 집-치킨집 사이의 거리를 구한다.2차원 배열 dist를 생성해서 dist[..

DFS / 백트래킹 이 두가지가 항상 함께 등장하는데, 어떤 차이가 있는지 몰라 정리해보았다. 쉽게 이야기 하자면 끝까지 가는지(DFS)/ 돌아오는지(백트래킹) 의 차이이다. 그래서, DFS 탐색하며 조건을 확인하며 해당 노드가 유망하지 않으면 탐색하지 않는 것 = 백트래킹 이다. 백트래킹도 일반적으로 재귀 형태로 작성되며 크게 3개의 내용을 작성한다. 재귀를 진행하는 동안 사용될 깊이(depth)를 매개변수로 넣기 재귀가 종료될 때 수행할 내용 재귀 종료조건 = 보통 정해진 depth에 도달했을 때 dfs 함수의 제일 앞에서 종료 조건에 포함되었는지 먼저 검사한다. 재귀가 진행 중이면 가지치기(백트래킹)할 내용 백트래킹으로 조합하는 함수를 구현하면 아래와 같다. public static void com..
크루장이 크루 신청을 승인 했을 때, 내가 쓴 게시글에 댓글이 달렸을 때,.. 등 사용자에게 알림이 가도록 하기 위해 알림 기능을 구현하려고 한다. 먼저 알림 기능을 위해 사용되는 방법 4가지를 간략하게 정리해보았다. 1. Polling 일정 주기로 서버 API 호출하는 방법 주기가 길다면? : 데이터의 실시간성을 보장할 수 없다. 주기가 짧다면? : 갱신된 내용 없어도 불필요한 요청이 자꾸 들어오기 때문에 불필요한 서버 부하가 발생한다. 2. Long Polling 업데이트 발생 시에만 응답을 보내는 방법. 서버에 요청 들어왔으면 일정 시간 대기하다가 업데이트 된 내용이 있을 경우 웹 브라우저에 응답을 보낸다. 불필요한 응답을 주는 경우를 줄일 수 있다. (장) 연결이 되어있는 경우 실시간으로 데이터가..