본문 바로가기

분류 전체보기

(239)
[고득점 Kit / 완전탐색] 카펫 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 작년쯤 풀었던 문제로 기억하는데, 이제야 해설을 하고자 한다. 이 문제는 다음과 같은 흐름으로 풀었다. 1. 전체 면적 계산(전체 타일의 개수는 brown + yellow)2. 전체 타일 개수의 약수 쌍 구하기3, 각 약수 쌍에서 테두리를 제외한 내부 영역의 면적이 노란 타일의 개수와 일치하는지 확인  def solution(brown, yellow): def divisor_pairs..
[고득점 Kit / 완전탐색] 소수찾기 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 다음과 같은 흐름으로 풀었다. 1. numbers로 만들어질 수 있는 모든 숫자 조합을 구한다.2. 구한 숫자 중 소수인지 아닌지 판별한다 from itertools import permutations# 소수 판별 함수def is_prime(n): if n   소수 판별은 워낙 유명한 내용이니 순열을 이용해 숫자의 조합을 구하는 부분을 자세히 보자. for length in range..
[고득점 Kit / 완전탐색] 최소직사각형 https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제의 답이 나오는 과정은 간단하다. 1. 가로, 세로길이를 내림차순으로 정렬한다. (즉, 모든 명함이 가로길이 2. 각 명함의 가로길이의 최댓값, 세로길이의 최댓값을 각각 곱해준다. 이를 코드로써 구현해주면 된다. 필자는 아래와 같이 무식한 방법으로 구현했다. def solution(sizes): width = 0 height = 0 for i in range(len(sizes)..
[AWS Final Project] CloudFront를 사용한 CDN 구축 / ACM, WAF를 활용한 웹서버의 보안 강화 Route53에 호스팅 영역은 이미 등록되었고, ALB는 이미 생성된 상태라고 가정하고 설명을 할 예정이다. (ALB는 EC2든, ECS든, EKS든 어떤 형태여도 무관하니 프로젝트의 성격에 알맞게 알아서 생성하길 바란다) 필자의 경우는 웹 애플리케이션을 EKS에 올렸다. Route53 등록 방법은 아래의 글을 참고하길 바란다.https://vegetableworld.tistory.com/168 [05.21] AWS route53, S3, Cloudfront, ACM vegetableworld.tistory.com  우리는 다음과 같은 순서로 서비스를 구축할 것이다.ACM 인증서 생성CloudFront를 활용한 CDN 구축Route53 레코드 생성WAF 구축 ACM 인증서 생성CloudFront에서 AC..
[고득점 Kit / 완전탐색] 모의고사 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 전형적인 완전탐색 문제이다. 각 수포자의 패턴을 시험 문제 길이에 맞게 반복하고, 주어진 정답과 비교하여 맞힌 문제 수를 계산한 후, 가장 많이 맞힌 문제 수를 찾아내고, 그 점수를 가진 수포자들을 배열에 담아 반환하면 된다. def solution(answers): # 수포자들의 답안 패턴 supo_1 = [1, 2, 3, 4, 5] supo_2 = [2, 1, 2, 3, 2, 4,..
[고득점 Kit / 정렬] H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr H-Index가 무엇인지 잘 이해해야 한다. 문제를 읽어보면 논문  n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 H-index라고 명시되어 있다. 쉽게 말해, h번 이상 인용된 논문이 h편 이상일 때, h의 최댓값을 찾는 문제이다. 따라서, 코드를 작성해보면 아래와 같다. def solution(citations): # 1. 논문 인용 횟..
[AWS Final Project] S3와 DynamoDB를 활용하여 Serverless 게시판 만들기 - 2편 (Cognito, S3, API Gateway, Lambda, DynamoDB 세팅) DynamoDB 생성 '테이블 생성' 버튼을 눌러 테이블을 생성하자  테이블 이름과 파티션 키를 아래와 같이 적고, 나머지 설정은 그대로 두자. 이대로 테이블을 생성한다.    Lambda 함수 생성 '함수 생성' 버튼을 눌러 함수를 생성하자.  '블루 프린트 사용' 을 선택해주고, 블루프린트 이름은 'Creat a microservice that interacts with a DDB table'로 설정하자.  역할 이름은 아래와 같이 써준다.  API 게이트웨이 트리거는 '제거' 버튼을 눌러 제거해주자. 이는 나중에 API Gateway 콘솔에서 api를 생성하고 추가해줄 것이다.  여기까지 설정을 마쳤다면, '함수 생성' 버튼을 눌러 함수를 생성한다. 생성 이후에는, '코드' 탭을 눌러 코드 소스를 ..
[고득점 Kit / 정렬] 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제의 핵심은 리스트의 정렬과 문자열의 정렬의 차이를 이해하고, 문제의 조건에 맞게 어떻게 정렬하는가이다. 우선, 리스트의 정렬과 문자열의 정렬의 차이를 이해해보자. numbers = [3, 30, 34, 5, 9]numbers.sort(reverse=True)print(numbers) # [34, 30, 9, 5, 3] numbers = [3, 30, 34, 5, 9]numbers = list(..