목록전체 글 (232)
내가 하고싶은 건 다 하는 공간

💡문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약정렬과 해싱을 이용하는 문제1. 장르 정렬: 재생횟수가 가장 많은 장르순으로 정렬2. 장르 내 노래 정렬: 하나의 장르 내에서 재생횟수가 가장 많은 노래순으로 정렬해서 노래 2개 선택, 재생횟수가 동일하면 고유번호가 작은 노래가 앞에 오도록 정렬3. 장르별로 가장 많이 재생된 노래를 두개씩 뽑아 베스트앨범에 넣기 💡알고리즘 설계1. 장르별 재생횟수 정보를 담은 딕셔..
💡문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/301650 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡SQL 코드 설계1. parent_id가 null인 레코드만 모아 first_gen을 만든다. 2. join 함수를 이용하여 parent_id가 first_gen.id와 같은 레코드만을 모아 second_gen을 만든다.3. join 함수를 이용하여 parent_id가 second_gen.id와 같은 레코드만을 모아 출력한다. 💡SQL 코드-- 코드를 작성해주세요with fir..

💡문제 링크https://www.acmicpc.net/problem/1920 💡문제 분석 요약N개의 정수가 주어졌을 때(A), 특정 정수가 A 안에 있는지 판단하는 문제특정 정수가 A 안에 존재하면 1을, 존재하지 않으면 0을 출력한다.예를 들어, A = [1, 2, 4, 8, 9, 10]일 때, 9는 A 안에 있으므로 1을 출력, 7은 A 안에 없으므로 1을 출력 💡알고리즘 설계처음에 단순히 앞에서부터 차례대로 순서 탐색하는 일차원적인 생각을 했다."당연히" 런타임 에러가 떴다. ( 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. )그래서 '아 그냥 무작정 탐색은 안되겠구나. 이진 탐색을 해야겠다' 라고 생각했다.이진 탐색은 여러 번 공부해서 개념이 머리에 잡혀있던 터라 그냥 코드..
앞으로 문제를 어떻게 풀어야할지, 순서를 시스템화하기 위한 기록1. 가장 작은 문제로 쪼개본다2. 의사 코드를 써서 내 아이디어를 확립한다.3. 인풋값을 잘 받아들이는지 확인한 후, 연습할 때 사용할 테스트 케이스를 미리 만들고 코드 짜기 시작한다.4. 중간중간 print 함수를 통해 내가 구상한대로 코드가 잘 작동되고 있는지 확인한다.

💡문제 링크https://www.acmicpc.net/problem/2630💡문제 분석 요약여러 개의 정사각형 칸으로 이루어진 정사각형 모양의 종이가 있다.각 정사각형은 파란색(1) 혹은 흰색(0)아래의 규칙에 따라 종이를 자른다.1. 모두 같은 색으로 칠해져 있지 않으면 4등분으로 자르기2. 모두 같은 색으로 칠해져있거나 하나의 정사각형 칸으로 이루어져 있어서 더 이상 4등분 할 수 없을 때까지 1을 반복최종적으로 나누어진 하얀색 색종이의 개수, 파란색 색종이의 개수를 출력한다. 💡알고리즘 설계작은 문제를 통해 큰 문제를 해결하는 분할 정복 알고리즘을 사용하였다.분할 정복 알고리즘은 1)분해 - 2)정복 - 3) 결합 이 세 과정으로 구성된다.1) 분해: 문제를 4개로 나눈다.2) 정복: 나눠진..

💡문제 링크https://www.acmicpc.net/problem/1932 💡문제 분석 요약한 층에 하나의 숫자를 선택선택한 모든 숫자의 합이 최대가 되는 그 최댓값을 출력 💡알고리즘 설계1. n(층수) 입력받기2. 테이블화를 하기 위해 (n+1)*(n+1) 크기의 테이블 만들기 3. 각 층의 숫자들을 테이블에 넣기4. 아랫층의 숫자 중 가장 큰 수를 본인과 합한 수를 본인에게 넣기알고리즘 흐름이 잘 이해가 안 될 때에는 직접 손으로 그려보기!💡코드n = int(input())# 테이블화table = [[0] * (n+1) for _ in range(n+1)]# 테이블 채워넣기for i in range(1, n+1): table[i][1:i+1] = list(map(int, input().sp..