분류 전체보기
![[백준] 11399번 ATM 인출 시간 계산하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNWMLO%2FbtrDidINz2w%2FHAfbTkaE0bG8WM1KYUwTd0%2Fimg.png)
[백준] 11399번 ATM 인출 시간 계산하기
문제설명 더보기 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분..
![[JAVA] Comparable, Comparator이란?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGZwM7%2FbtrDfXD6Otd%2FUz0mh3lfEmbTC8MOULt79K%2Fimg.png)
[JAVA] Comparable, Comparator이란?
Comparable/Comparator 두 인터페이스는 객체를 비교할 수 있도록 만드는 기능을 갖고있다. 객체를 비교한다? 이해가 쉽지않다. 잘 생각해보자, 만약, primitive 타입의 실수 변수의 경우엔 부등호를 갖고 쉽게 비교가 가능하다. 하지만 객체 끼리 비교는 그 기준이 모호하여 비교가 힘들다. 자동차로 비교를 해보자 안곰돌과 이승냥은 서로 좋은 자동차를 선택 하려고 한다. 안곰돌의 "좋은 자동차"의 조건은 최근 연식의 자동차가 좋은 자동차이다. 하지만 이승냥의 "좋은 자동차"의 조건은 높은 배기량이 좋은 자동차이다. 안곰돌과 이승냥의 "좋은 자동차"를 고르기를 한다면 서로 다른 종류의 자동차를 선택할 것이다. 따라서 객체 끼리의 비교는 그 "기준"이 필요하며 그 "기준"을 정하고 서로 비교를..
![[Spring boot]oEmbed 사이트 만들기 /사용법 /코드 포함/](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyrs0Z%2FbtrC7BCCunQ%2FlHcfLCAOfpwy97CEgu3iVk%2Fimg.png)
[Spring boot]oEmbed 사이트 만들기 /사용법 /코드 포함/
oEmbed란? oEmbed 공식사이트 에 따르면, oEmbed는 다른 사이트 URL을 내장된 표현을 가능하게 하는 Format입니다. 유저가 Resource를 직접 파싱하지 않고 리소스에 대한 링크를 게시할 때 웹 사이트에서 포함된 사진 또는 비디오를 표시할 수 있습니다. 기술 스택 Bace-end : Spring boot '2.6.6' front-end : 바닐라 js 기능 구현하기 각 사이트마다 oEmebed 요청하는 주소가 다르므로 입력을 받으면 각각 다르게 처리를 하여 해당 사이트 형식으로 요청을 해야한다. 필자는 youtube와 vimeo를 구현을 했다. 순서 구조를 크게 나누면 client -> controller -> service-> dataHandler-> jsonHandler-> co..
![[프로그래머스] 정수삼각형](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpHt4B%2FbtrCHMYc93b%2FuXdzYrICHcEFGvFSBOWjfK%2Fimg.png)
[프로그래머스] 정수삼각형
문제설명 더보기 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 문제풀이 i/j 0 1 2 3 4 0 7 1 3 8 2 8 1 0 3 2 7 4 4 4 4 5 2 6 5 입력 값을 반대로 행렬로 나타낸 테이블 위의 테이블을 triangle 테이블, 최대값을 넣어준 테이블은 dp 테이블이라고 부른다. dp[0][0]은 고정이며 , 아래로 내려..
![[백준] 2164번 카드 게임](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBidZW%2FbtrCaty4CK5%2F2ReakctbII8FujMGq4wPX1%2Fimg.png)
[백준] 2164번 카드 게임
문제설명 더보기 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카..
![[백준]1874번 스택으로 오름차순 수열 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpsHVz%2FbtrBYygEPNx%2F9b3FsCyQYrteULbhjKHVs1%2Fimg.png)
[백준]1874번 스택으로 오름차순 수열 만들기
문제설명 더보기 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 입력 첫 줄에 n (1 ≤ n ≤ 100..
![[자료구조] 스택과 큐](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FphChp%2FbtrB0ElUw4z%2FK9vztwkQadarPu9A2HOcNk%2Fimg.png)
[자료구조] 스택과 큐
스택이란? 스택은 삽입과 삭제 연산이 후입선출(LIFO: Last-in Frist-out)로 이뤄지는 자료구조이다. 후입선출은 삽입과 삭제가 한 쪽에서만 일어나는 특징이 있다. 스택 용어 정리 위치 top: 삽입과 삭제가 일어나는 위치를 뜻한다. 연산 push : top 위치에 새로운 데이터를 삽입하는 연산 pop : top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산 peek : top 위치에 현재 있는 데이터를 단순 확인하는 연산 큐 큐는 삽입과 삭제 연산이 선입선출(FIFO : First-in First-out)로 이뤄지는 자료구조이다. 스택과 다르게 먼저 들어온 데이터가 먼저 나가는 특징이 있으며, 삽입과 삭제가 양방향에서 이뤄진다. 큐 용어 정리 rear : 큐끝에서 가장 끝 데이터를 가리..
![[알고리즘] 슬라이딩 윈도우(sliding window) 알고리즘 이란?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBmzNl%2FbtrBVBJeqCm%2Fb6kmULI5pSkxeMfT8V0rUk%2Fimg.png)
[알고리즘] 슬라이딩 윈도우(sliding window) 알고리즘 이란?
슬라이딩 윈도우 슬라이딩 윈도우 알고리즘은 연속되는 투 포인터와 알고리즘과 유사하지만 부분 배열의 길이가 고정적이다. 고정적인 틀을 오른쪽으로 밀어 오면서 틀 안에 있는 값들을 부분배열이라고 생각하면 된다. 투 포인터 알고리즘은 두 개의 포인터를 이동하기 때문에 2개의 변수가 필요하지만 슬라이딩 윈도우 알고리즘은 부분 배열의 길이를 고정적으로 하기 때문에 1개의 변수만 필요하다. 설명 아래 노란색 칸이 3의 고정길이를 가지는 부분 배열이라 가정, 주어진 문제가 부분 배열의 합을 구하는 것이라 하면 오른쪽으로 한 칸 옮기더라도 옮기기 전 부분 배열과 옮기고 난 후에 겹치는 부분이 존재한다. 즉 기존 구간에서 빠지게 되는 가장 왼쪽 칸의 값은 삭제하고 새 구간에 포함되는 값을 추가하면 된다. 예시 2가지 긴..