분류 전체보기 1341

Ch01. 프로젝트 환경 설정 - 프로젝트 생성

사전 준비물 JAVA 11 IDE Eclipse, IntelliJ https://start.spring.io/ 해당 사이트에서 프로젝트를 만들면 된다. Project 구분 최근 추세는 Gradle이다 SNAPSHOT = 아직 만들고 있다 Group = 프로젝트 그룹 설정 Artifact, Name = 프로젝트 명 Spring Web : 웹 관련 설정을 하기 위한 라이브러리 Thymeleaf : HTML을 보여주기 위한 라이브러리(종류가 다양하지만 여기서는 Thymeleaf를 사용) 프로젝트 파악하기 요즘 트렌드에서는 테스트가 매우 중요하다. java파일을 제외한 나머지 파일은 리소스이다. build.gradle(Gradle 관련 설정) 의존성에 추가한 라이브러리를 다운로드할 위치를 적는다. 실행하게 되면..

스프링 입문 2021.11.24

LEVEL 3 : 등굣길

https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제 효율성 체크가 있는 문제이다( BFS 하기에는 시간 초과) 풀이 N * M 크기의 MAP을 선언하여 웅덩이를 -1로 세팅한다( 나머지는 0) --- > 초기 이중 FOR문을 돈다 경우 1 : 물 웅덩이일 경우 -> map[i][j]map [i][j] == -1 일 경우 map [i][j]를 0으로 세팅해 준다(물 웅덩이를 지난 경우의 수가 있을 ..

LEVEL 3 : N으로 표현

https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제 N을 사용해서 number을 표현할 수 있는 최소한의 개수를 출력하는 문제 풀이 DFS 를 활용한 문제이다. 어떻게 해결해야 될지 몰라 정답 코드를 찾아보았다(아직ㅜㅜ 부족하다) 재귀 함수를 활용하여 390,624번을 경우의 수를 코드로 구현 종료 조건 1 : count 값이 8 초과 일 경우 : N이 8번 이상 나온 경우로 이때는 계산할 필요 없으므로 return 종료 조건 2 : 만약 계산한 값이(SUM) 표현해야 할 번호 number와 같다면 그때의 최솟값을 저장하고 retrun x값을 N으로 선언 후 , for문을 통해 1 ~ ..

LEVEL 3 : 가장 먼 노드

https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 문제 풀이 그래프 탐색 문제이다. 1번 노드부터 시작하여 가장 멀리 있는 노드의 개수의 숫자를 세어야 된다. 시작 노드가 정해져 있고 그중 가장 멀리 있는 노드를 구하는 거므로 다익스트라 알고리즘을 활용한다. List형 배열을 노드의 개수만큼 생성 후 초기화한다. 간선의 돌면서 간선을 노드를 연결하여 준다. 실제 노드의 번호는 edge에 나온 정보보다 1 값 작으므로 start-1, end-1을 해준다. 문제의 조건의 보면 간선은 ..

LEVEL 3 : 입국심사

https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제 풀이 이분 탐색 문제이다( 조건의 보면 범위가 time은 최대 10억 , 한 명을 검사하는데 기다리는 사람은 최대 10억 명이기 때문에 최악의 경우에는 10억 * 10억 이 될 수 있으므로 이분 탐색으로 검색하여야 한다.) 0 ~ 10억 * times의 최댓값 범위의 값을 이분 탐색하며 해당 시간일 때 최대될 수 있는 사람 수를 구한다. 만약 최대 될수 있는..

Array Manipulation

https://www.hackerrank.com/challenges/crush/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays Array Manipulation | HackerRank Perform m operations on an array and print the maximum of the values. www.hackerrank.com 문제 n 짜리 배열에 m 번의 쿼리를 동작시켜 가장 큰 값이 있는 원소를 반환한다. 쿼리같은 경우 a , b , k 값으로 이루어져 있고 a ~ b까지 원소 값을 k 만큼 증가시킨다. 풀이 문제 자체는 굉장히 쉽..

Minimum Swaps 2

https://www.hackerrank.com/challenges/minimum-swaps-2/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays New Year Chaos | HackerRank Determine how many bribes took place to get a queue into its current state. www.hackerrank.com 문제 숫자들이 정렬되어 있지 않은 상태로 있을 때, 해당 숫자를 정렬하기 위해서는 최소한 몇 번을 연산이 필요한지 계산 풀이 여기서 가장 핵심은 1 ~ n 까지 값이 중복되지 않게 arr에 ..

New Year Chaos

https://www.hackerrank.com/challenges/new-year-chaos/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays New Year Chaos | HackerRank Determine how many bribes took place to get a queue into its current state. www.hackerrank.com 문제 놀이기구를 기다리는 줄에서 뇌물이 최소 몇 번 오갔는지 구하는 문제. 단, 한 사람이 뇌물을 3번 이상 준 경우는 Too chaotic을 결과로 해야 한다 풀이 q의 크기만큼 for문을 ..

Arrays Left Rotation

https://www.hackerrank.com/challenges/jumping-on-the-clouds/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=warmup Jumping on the Clouds | HackerRank Jumping on the clouds www.hackerrank.com 문제 d 만큼 왼쪽으로 Shift 한 결과를 리턴 풀이 d 가 배열을 크기와 같다면 배열 그대로 리턴 list 선언 후, d ~ 배열 크기 , 0 ~ d 까지를 순차적으로 더해준다. public static List rotLeft(List a, int d) { i..

2D Array - DS

https://www.hackerrank.com/challenges/2d-array/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays 2D Array - DS | HackerRank How to access and use 2d-arrays. www.hackerrank.com 문제 배열을 모든 요소에 대해 모래시계 모양으로 생긴 요소들의 합을 최댓값을 리턴한다. 풀이 배열을 행의 길이 -2 , 배열을 열의 길이 -2까지 이중 for문을 돈다( 모래시계의 첫 번째 위치)= > a 위치 시작 위치(a)부터 행의 값 +2 , 열의 값 +2 한 부분까지의 합을..