알고리즘
[프로그래머스] 가장 큰 수 - Java 풀이
문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 - numbers의 길이는 1 이상 100,000 이하입니다. - numbers의 원소는 0 이상 1,000 이하입니다. - 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 정답 풀이 import java..
[프로그래머스] 다리를 지나는 트럭 - Java 풀이
문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 제한 조건 - bridge_length는 1 이상 10,000 이하입니다. - weight는 1 이상 10,000 이하입니다. - truck_weights의 길이는 1 이상..
2023.12.18 TIL
오늘 한 것 복습 과제 알고리즘 복습 과제 캠프 과정 중에 여태 것 배운 것들을 복습하는 차원에서 나온 과제를 하고있다. 이제 웬만한 CRUD 기능들은 다 할 수 있는 것 같았는데 과제를 하다보니 아직 조금 부족한것같다. 이번 과제를 통해 기초는 완벽하게 숙지하는 것을 목표로 해야겠다. 알고리즘 매일 알고리즘 스터디를 통해 프로그래머스 LV2 수준의 문제를 2문제씩 풀고있다. 잘 못 풀었던 레벨의 문제들도 머리를 박으며 하다보니 점점 잘 풀게 되는 것 같다. [프로그래머스] 다리를 지나는 트럭 - Java 풀이 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_le..
[프로그래머스] 하샤드 수 - Java 문제풀이
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 사항 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 정답 풀이 class Solution { public boolean solution(int x) { return isHarshad(x); } private boolean isHarshad(int n) { int num = n; int sum = 0; while(num > 0) { sum += num % 10; num /= 10; } return n % s..
[프로그래머스] 달리기 경주 - Java(자바) 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등..
2023.11.13 TIL
오늘 한 것 스프링 강의 듣기 알고리즘 스터디 스프링 강의 클라이언트에서 요청 데이터를 받을 때, 유효성 검증을 편하게 도와주는 Validatoin 관련해서 강의를 들었다. 기본적으로 제공하는 유효성 검증 어노테이션들과, 커스텀으로 만들어 검증하는 법을 배웠다. 입력값에 대한 검증은 서버에서 할 필요없이 클라이언트에서 하면 되지않나 생각했지만 찾아보니 클라이언트, 서버 이중으로 검증하는게 더 좋다고한다. Validation 관련해서 공부하고 정리하였으니 참고하면 좋을 것 같습니다. https://mocha-coding.tistory.com/30 [Spring] 유효성 검증 - Validation Validation이란? 로직을 처리하기 위해 필요한 데이터 ( 사용자 또는 다른 서버의 request 등 )..
2023.11.09 TIL
오늘 한 것 스프링 강의 듣기 알고리즘 스터디 스프링 강의 오늘은 인증과 인가가 무엇인지와 웹 어플리케이션에서 인증을 처리하는데 어떤 방식이 있는지에 대해 강의를 들었다. 웹 어플리케이션 인증 방식은 세 가지가 있는데, 쿠키 - Client(브라우저)에서 사용자의 인증정보를 가지고있음. 세션 - 서버의 세션저장소 (DB가 될수도있고, 인 메모리 저장소가 될 수 도있다. 구현하기나름) JWT(토큰) - Client(브라우저)에서 사용자 정보, 암호화 정보 등을 조합한 암호화된 토큰을 가지고있음 (쿠키 또는 헤더) 인증 방식이 있다. 각 인증 방식별 처리 흐름과, 장단점등을 블로그로 정리하면서 복습해봐야겠다. 알고리즘 스터디 오늘 배정받은 알고리즘 스터디 팀원들과 앞으로 어떤식으로 스터디를 진행할 지 ..