본문 바로가기

전체 글

(236)
[프로그래머스] [1차] 다트 게임(python) https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트..
[프로그래머스] 멀쩡한 사각형(python) https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같..
[프로그래머스] K번째수(python) https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다..
[프로그래머스] 완주하지 못한 선수(python) https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. ✔️ 제한사항 마라톤 경기에 참여한 선수의 수는 ..
[백준] 4375번: 1 (java, python, 나머지 연산) https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 🗒 코드 java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()) { int n = sc.nextInt(); int num = 0; for (int i = 1;i
[백준] 2609번: 최대공약수와 최소공배수(java, python) https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 💡주의 사항 유클리드 호제법을 사용함에 주의하자. 🗒 코드 java import java.util.Scanner; public class Main { static int gcd(int a, int b) { while (b != 0) { int r = a % b; a = b; b = r; } return a; } static int lcm(int a, int b) { // Least common multiple return a * b / gcd(a, b); } pu..
s3 데이터 가져와서 DB에 import 하기 (pandas, boto3) s3에 올려둔 csv 데이터를 가져와서 pandas로 데이터프레임 형식으로 데이터를 읽은 후, 원하는 테이블에 import하고 싶었다. 일단 boto3을 사용하여 s3 데이터를 불러온다. s3 데이터를 가져오기 위해선, 접근 키 아이디와 비밀번호, 그리고 지역이 필요하다. 접근 키 아이디와 비밀번호는 AWS 계정을 생성한 후 IAM에서 사용자를 생성하는 과정에서 확인할 수 있다. 참고로 IAM은 AWS 리소스에 대한 접근을 안전하게 제어할 수 있는 서비스다. 아무튼 IAM을 생성하고 나서, 해당 키를 csv 파일로 보관해놨기 때문에 쉽게 찾을 수 있었다. 다운을 안받았다면 AWS 콘솔에서 IAM을 검색하고 사용하면 된다. 지역도 같이 확인한다. 혹시 지역이 정확히 기억이 안난다면, 다음 페이지를 확인하자..
Big-O cheat sheet Big-O(빅오)는 시간 및 공간 복잡도를 나타낼 때 많이 사용한다. 특히 가장 최악의 경우를 고려한 표기법이다. 시간 복잡도를 표현할 때 가장 큰 형태(최고차항)의 값을 남기면 된다. N이 충분히 큰 값이 되어 많은 연산을 한다고 했을 때, 뒤에 더해지는 N의 루프 시간은 그리 중요하지 않기 때문이다. 📌 기본 자료구조 시간 복잡도(Big-O) 자료구조 접근(Access) 검색(Search) 삽입(Insertion) 삭제(Deletion) 배열 O(1) O(n) O(n) O(n) 스택 O(n) O(n) O(1) O(1) 큐 O(n) O(n) O(1) O(1) 해시 테이블 N/A O(1) O(1) O(1) 이진 트리 검색 O(nlogn) O(nlogn) O(nlogn) O(nlogn) 📌 기본 정렬 알고..