전체 글 573

[2019 카카오 인턴십]튜플

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 💡 접근 문자열 길이 기준으로 정렬해서 list에 넣으면 되는 문제였다. HashSet을 사용하려다가 데이터 순서가 안 맞아서 ArrayList로 풀었는데 데이터 입력 순서 보장해주는 LinkedHashSet 사용하면 된다! 👩‍💻 코드 import java.util.*; class Solutio..

[Spring]의 엑추에이터 엔드포인트(Actuator Endpoint)란?

엔드포인트(Endpoint) An endpoint is simply one end of a communication channel. (stackoverflow) 단순히 커뮤니케이션 채널의 한쪽 끝이라고 설명하고 있습니다. 개발하는 입장에서 보자면 서비스를 이용할 때 한쪽 끝에 해당하는 URI라고 볼 수 있습니다. 스프링 부트의 엑추에이터 엔드포인트란 애플리케이션의 상태를 관리할 수 있는 URI를 말합니다. 엑추에이터 엔드포인트를 사용하면 애플리케이션을 쉽게 모니터링할 수 있습니다. 스프링 부트는 여러가지 엔드포인트를 내장하고 있으며 자체 엔드포인트도 추가할 수 있습니다. 사용을 위해서는 아래의 의존성을 추가해야 합니다. implementation 'org.springframework.boot:spring..

Spring 2022.04.01

[2021 카카오 인턴십]거리두기 확인하기

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 💡 접근 거리 1부터2까지 다른 응시자를 만나게 되면 거리두기가 안되고 있는..

[2018 카카오 블라인드 1차]뉴스 클러스터링

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 💡 접근 중복을 허용하는 다중 집합에 대해서 생각해봐야 하는 문제였다. 두 개의 리스트에서 겹치는 부분은 교집합으로 따로 만들어두고 해당 원소를 삭제하면 두 개의 리스트에 남는 집합들이 합집합의 원소들이 된다. 👩‍💻 코드 import java.io.*; import java.util.*; public class Solutio..

[2021 카카오 블라인드]메뉴 리뉴얼

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/72411?language=java 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 💡 접근 손님별 2개 이상의 모든 단품 메뉴 조합을 만들어야 했다. 그리고 그 만든 조합 기준으로 value값 기준으로 리스트를 내림차순 정렬해야했다. 그래야 코스요리 메뉴 구성에 들어갈 리스트에 잘못된 값이 들어가지 않는다! 리스트에 해쉬맵의 키들을 담아서 해쉬맵에 담긴 value 값을 기준으로 내림 차순 정렬하는 방법에 ..

시간복잡도와 공간복잡도

시간복잡도 시간복잡도란 알고리즘을 수행하는 데에 연산들이 몇 번 이루어지는지 표기하는 것입니다. 알고리즘이 복잡해질수록 평균적인 경우는 구하기가 매우 어렵기에 시간복잡도의 척도를 계산할 때는 최악의 경우(빅 오 표기법)를 주로 사용합니다. O(1) - 입력 크기에 상관없이 일정한 연산을 수행하면 시간복잡도는 O(1)입니다. void func (int n) { printf("%d\n", n); } O(logN) - 연산횟수가 logN에 비례해서 증가하면 시간복잡도는 O(logN)입니다.(이진 탐색) for(i=1; i

Algorithm 2022.03.28