반응형

분류 전체보기 316

[프로그래머스,Java] Level3: 최적의 행렬곱셈

문제분석 연속 행렬의 연산수를 최소화 시키는 문제다. 계산을 할 수 없는 행렬은 입력으로 주어지지 않는게 특징이다. 즉, 연속된 행렬의 인접한 숫자는 무조건 같다. 1. 첫번째 접근 연속된 두 행렬을 merge , 계산하면 인접한 숫자는 사라진다. 즉, 인접한 숫자를 "먼저" 없애면 연산을 최적화 할수 있다고 생각했다. 즉, [5,3],[3,10],[10,6] 이면 인접한 숫자 10을 먼저 소거시키면 적은 연산을 이룰수 있을줄알았다. 1. 인접한 숫자와 위치를 먼저 뽑는다. 2. 인접한 숫자가 제일큰 순서대로 정리한뒤, 그 위치에있는 2개의 행렬을 merge한뒤에 삽입한다. 이 과정을 행렬이 한 개 남을때 까지 반복한다. => 틀림 이유는, 추측이 잘 안되지만.. 인접한 숫자가 가장 큰 순서대로 뽑아 연..

[프로그래머스,Java] Level3: 광고 삽입

https://school.programmers.co.kr/learn/courses/30/lessons/72414 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제분석 시청자의 동영상 로그를 토대로, 최적의 광고타이밍을 선정해야한다. 동영상 상영시간은 최대 99:59:59 초, 광고의시간은 동영상시간보단 적다. 필자가 처음 접근한 전략 => 이분탐색 으로 최적의 광고타이밍을 구한다 => X 시청자의 동영상로그가 한쪽에 몰려있을수가 있다. 이런경우 이분탐색으로 탐지를못한다. 차선택: => 결국 시청자 동영상로그를 효율적으로 탐색해야한다. => 누적합 개념..

[프로그래머스,java] level4: 올바른 괄호의 갯수

https://school.programmers.co.kr/learn/courses/30/lessons/12929 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 매우간단 실제로 나오는 코드도 매우 간단하게 나오긴한다. 근데 문제 -> 코드로 가는 그 사고력.. 그게 어려우니 레벨 4였던것같다. 괄호.. 2쌍이 생겨나는 경우를 한번 살펴보자. 괄호 2쌍은 ()() , (()) 2개의 경우다. (())은 이전 괄호 1쌍에있던 모든 경우를 마치 감싸듯이 나오는 형태고, ()() 는 괄호 1쌍을 2개 붙인경우다. EX) f(1)*f(1) 괄호 3쌍을 살펴..

[프로그래머스,Java] Level4 : 쌍둥이 빌딩 숲

https://school.programmers.co.kr/learn/courses/30/lessons/140105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제분석: n쌍의 쌍둥이 빌딩이 그림과같은 규칙으로 서있을때, 은비가 바라봣을때 보이는 모습이 몇가지가 존재하는지 반환하는 모습이다. 즉, 은비가 그림과같이 바라보는 모습은 서로다른 쌍이 2개이니, 서로다른 2개의 건물이 겹쳐보이는 n쌍의 빌딩의 경우의수를 구하면된다. 일단 계산값을 100,000,007로 나눠달라는것과 규칙성의 냄새가나면 점화식 DP다. 일반 구현으로 해결할수있는 DP는 조금 ..

[프로그래머스,java] 두 원 사이의 정수 쌍

그냥 원 사이의 정수 쌍 구하는 문제가 2레벨에 있었던거같은데, 두 원 사이의 정수쌍을 구하는 문제가 나왔다.. (이게 같은 2레벨?) 코딩테스트가 점점 난이도가 높아져가 수능이되어간다..; 문제분석 일단, 하나의 원 안쪽에있는 정수쌍을 구하는법은, 피타고라스의식 x^2+y^2 = r^2 을 쓰면된다. 이것도 기출을 파악해야 바로 떠오르지, 안풀어본사람은 떠오르기 힘들엇을것같다. 그 이유는, r은 문제에서 주었고, X를 0~r 까지 탐색한다 가정하면, y의 갯수가 추정이된다. 즉, y^2= r^2- x^2 (x는 0부터 r까지 인덱스값) 이렇게 식을짜면, x가 0, 1 , 2 ..일때 가능한 y의 0 ,1 , 2의 갯수가 나오게된다. => 헌데 이게 그냥 원 한개의 테두리 포함 문제였다면 쉽겟지만, 두 ..

[프로그래머스, 실무역량과제] API 서버 개발

https://school.programmers.co.kr/skill_check_assignments/430 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr API 서버 개발을 입문하기 딱 좋은 문제들을 묻습니다. 필자는, Gradle 환경에서 테스트 했습니다. 1번 문제 문제는 다음을 묻습니다. 클라이언트가 "/" , "content-type, json " 요청을 보낼때 API 서버를 하나 5678포트로 생성해서 json 형태로 "message" : "server check" 를 담아주세요. 즉, 제일먼저 해야하는것은 서버를 구축하는 코드다. 보통.. @..

자바 2023.04.12

Spring security : JWT 토큰 인증 / 인가 적용하기

스프링 시큐리티의 필터체인이다. 이것이 스프링 시큐리티의 동작 원리를 한 그림으로 나타낸것입니다. 처음보면 참 어지럽다.. 여기서 주목해야하는 부분은 Authentication(인증) / Authorization (인가) https://github.com/codingspecialist/Springboot-Security-JWT-Easy GitHub - codingspecialist/Springboot-Security-JWT-Easy Contribute to codingspecialist/Springboot-Security-JWT-Easy development by creating an account on GitHub. github.com 예제 코드는 여기서 따왔다. Security Config 하나씩 살..

도커 레지스트리

도커 허브 vs 도커 레지스트리 "허브(Hub)"와 "레지스트리(Registry)"는 모두 컨테이너 이미지를 호스팅하고 배포하는 플랫폼을 가리키는 용어입니다. 그러나 이 용어들은 일반적으로 다음과 같은 차이가 있습니다. 허브(Hub)는 일반적으로 컨테이너 이미지를 공유하고 검색할 수 있는 중앙 집중식 서비스입니다. 예를 들어, Docker Hub는 Docker 컨테이너 이미지를 공유하고 Docker 커뮤니티에서 만든 이미지를 찾을 수 있는 가장 대표적인 허브 중 하나입니다. 반면에 레지스트리(Registry)는 일반적으로 개인이나 조직이 자체적으로 운영하는 이미지 저장소를 가리킵니다. 예를 들어, Docker Registry는 Docker 이미지를 자체적으로 호스팅하고 관리하는 것을 말합니다. 또한 조직..

도커 2023.04.06

Docker 사용해보기

도커(Docker)는 컨테이너 기반의 가상화 플랫폼입니다. 컨테이너는 애플리케이션과 그 애플리케이션이 실행될 때 필요한 모든 종속성을 포함하는 라이브러리와 함께 패키징된 소프트웨어 유닛입니다. 도커는 애플리케이션을 컨테이너로 패키징하고, 각각의 컨테이너에서 애플리케이션을 실행할 수 있도록 해줍니다. 이러한 컨테이너 기반의 가상화는 다양한 운영 체제와 환경에서도 애플리케이션을 동일하게 실행할 수 있게 해줍니다. 또한, 도커는 이미지(Image)라는 것을 사용하여 애플리케이션을 컨테이너로 패키징합니다. 이미지는 애플리케이션 실행에 필요한 모든 종속성과 설정 등을 포함한 불변의 템플릿이며, 이를 사용하여 다양한 컨테이너를 만들고 배포할 수 있습니다. https://www.docker.com/ Docker: A..

도커 2023.04.05

[프로그래머스,Java] Level4: 무지의 먹방 라이브

문제 분석 1. 회전테이블에 음식의 양이 다르게 담겨있는 접시들이 존재한다. 2. 테이블은 1초마다 회전한다. 3.무지는 1초마다 회전되는 접시를골라 음식을 1개 먹는다. (빈 접시가 생기면 테이블에서 없앤다.) 4. 이때, 네트워크가 K초의 발생했다고 쳤을때, 무지가 다시먹어야할 접시를 골라주세요. 4번은 말장난이다. 네트워크 K초가 발생할때 무지가 다시먹어야할 접시 라고 이해하기보단, 무지가 K+1초에 먹어야할 접시를 구한다 라고 보는것이 편하다. 문제는 아주 심플하다, K만큼 음식을 소모하다 K+1번째를 고르면 되지만, K의 데이터가 억단위를 넘는다. 즉, 1부터 K까지 일일이 음식을 소모하는 짓은 미친짓이다. 당연히, 이런 빅데이터를 예상하고 주어지면 효율적인 코드를 생각해야한다. 어떻게 효율적으..

반응형