본문 바로가기

분류 전체보기411

[Python] 백준 3079번 : 입국심사 https://www.acmicpc.net/problem/3079 3079번: 입국심사 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ M ≤ 1,000,000,000) 다음 N개 줄에는 각 심사대에서 심사를 하는데 걸리는 시간인 Tk가 주어진다. (1 ≤ Tk ≤ 109) www.acmicpc.net 💡 문제 풀이 이분탐색 문제이다. 이번 이분탐색 문제에서 중심이 되는 값은 주어진 시간에 얼마나 많은 사람들이 통과할 수 있을까이다. 최대 범위(모든 사람이 가장 오래걸리는 심사대)에서 최소 범위(0)부터 이분탐색을 진행한다. 모든 입국 심사대를 확인하는데, 주어진 시간으로 얼마나 많은 사람들이 통과할 수 있는지만 보면 된다. ✔️ 느낀 점 이분 탐색은 항상 헷갈리는 문제이지만 어떤.. 2023. 4. 27.
[Java] 백준 19637번 : IF문 좀 대신 써줘 https://www.acmicpc.net/problem/19637 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net 💡 문제 풀이 기본적인 이분탐색 문제이다. 칭호와 값의 매핑을 위해서 Map을 사용했고, 그중 비교가 빠른 HashMap을 사용했다. 중복을 제외해서 Map에 넣고 이분탐색을 위해 필요한 배열을 스트림으로 정렬해서 넣었다. 이후는 이분탐색으로 찾으면 된다! 시간복잡도는 아무리 커야 O(nlogn)이다. ✔️ 느낀 점 자바로 알고리즘을 푸는 건 너무 어렵다.. 2023. 4. 26.
[BackEnd] Enum 유효성 검사 구현기 🤔 들어가기 앞서 사실 enum에 대한 유효성 검사를 위해서 Custom Annotation을 구현할 필요는 없을 수 있다. 하지만 나는 DTO에서 enum 타입 자체를 가지고 있고, 구현한 enum 타입이 많아서 만들었다. 이를 통해서, Parse 오류도 잡고 클라이언트에서 어떤 값을 잘못 보냈는지 확인할 수 있게 되었다! 😋😋 Custom Annotation을 구현하는 방법은 이전에 작성한 글을 참고하기 바란다! 🪄 Enum용 CustomAnnotation 만들기 작성한 코드는 우선 다음과 같다. 핵심으로 표시한 부분은 다음에 설명하겠다. @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = .. 2023. 4. 25.
[Spring] @ModelAttribute 🌞 들어가기 앞서 스프링에서 요청한 파라미터를 바인딩하는 방법은 여러 가지 있다. 오늘은 그중에서 @ModelAttribute에 대해서 이야기해 볼 생각이다. 사용은 쉽지만 주의할 점이 있기 때문에 어떻게 동작하는지와 같이 주의점도 정리해 보겠다. 😋😋 🪄 @ModelAttribute란? 파라미터를 바인딩하는 여러 어노테이션 중에 모델 객체를 바인딩하는 어노테이션이다. 다음과 같은 모델 객체(혹은 DTO)가 존재할 때 정보를 받아오는 방법은 여러 가지가 있겠지만 이 글에서는 @RequestParam과 @ModelAttribute를 비교해서 사용법을 알아보겠다! 가볍게 참고만 하자 ㅎㅎ.. // 모델 객체 public class User { private String name; private int age.. 2023. 4. 19.
[AWS] AWS 인프라 구축하기 - CodeDeploy (5) 🤗 AWS 구축하기 5 사실 이 시리즈의 메인 파트이다. 이번 프로젝트에서는 Github Action과 CodeDeploy로 CI/CD를 구축했다. 도커는 다음에.. 실행 과정은 다음과 같다. task 1 : Github Action에서 작업들을 마치고 코드를 빌드한다. task 2 : Github Action이 CodeDeploy를 동작시키고, S3에 빌드 결과물을 저장한다. task 3 : CodeDeploy가 EC2에 S3에 저장된 결과물을 가져와 배포한다. 설정하는 데 있어서 중요한 것은 IAM 권한 설정하는 것이다! 차근차근 기록해 보자. 🏭 CodeDeploy 🖥️ EC2 설정 추가하기 EC2에서 배포를 진행하려면 다음과 같은 추가적인 설정이 필요하다! Tag 추가하기 IAM 추가하기 인스턴스.. 2023. 4. 5.
[AWS] AWS 인프라 구축하기 - SES (4) 🤗 AWS 구축하기 4 일반적으로 회원 정보를 자체적으로 관리하는 서비스는 많지 않다. 왜냐하면 OAuth2를 사용하면 직접 유저 정보를 관리할 필요가 없어지기 때문이다. 하지만 이 프로젝트에서는 특정 집단만 사용할 수 있게 제한했기 때문에 우리가 로그인을 구현해야 했고, 인증을 위해서 Email 서비스를 사용하기로 했다! AWS의 SES 서비스를 사용할 예정이다. ✉️ SES SES(Simple Email Service)를 사용하기 위해서는 크게 어려운 점은 없다. 특별히 설정할 건 없지만 꼭 해줘야 하는 설정이 다음 2가지 존재한다. 샌드박스 벗어나기 도메인 or 이메일 설정하기 1️⃣ 샌드박스 벗어나기 SES가 샌드박스에 묶여있다면 인증된 사용자한테만 메일을 보낼 수 있다. 즉, 인증되지 않은 사람.. 2023. 4. 5.