분류 전체보기

SQL

[SQL/SELECT] 12세 이하인 여자 환자 목록 출력하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/132201 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간: 7분 50초 연습 설계하기(접근방법) 1. 요구 사항 정리 1) 12세 이하 2) 여자 2. 출력 컬럼 1) 환자이름, 환자 번호, 성별코드, 나이, 전화번호 추가 처리 1) TLNO 가 NULL인 경우 NONE으로 처리 코드(출력) SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO, 'NONE') FROM PATIENT WHER..

SQL

[SQL/SELECT] 조건에 맞는 회원수 구하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131535 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간: 설계하기(접근방법) 1. 요구 사항 정리 연도 : 2021년도에 가입 나이 : 20 ~ 29세 결과값 : COUNT 2. 구현 Where YEAR(JOINED) = 2021 AND 20 = AGE; 코드(출력) SELECT COUNT(*) from USER_INFO Where YEAR(JOINED) = 2021 AND 20 = AGE; 얻어갈 부분 1. 기본적인 SELE..

알고리즘(백준)/이분탐색

[알고리즘/이분 탐색] 1654번 : 랜선 자르기 - python

링크 : https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 소요시간: 23분 26초 설계하기(접근방법) 1. 입력받기 랜선 길이를 입력받는다 2. 구현하기 처음에 랜선을 못 자르는 경우가 있으면 안될 것 같다고 자의적으로 판단해서 실패했다 그러나 자르지 않고 넘어가도 된다는 것을 알고 end 값을 max(lan_list)로 정했다 start 값은 1부터 시작하면 된다 나머지 부분은 cnt에 랜선을 mid로 나눈 ..

알고리즘(백준)/이분탐색

[알고리즘/이분 탐색] 6236번 : 용돈 관리 - python

링크 : https://www.acmicpc.net/problem/6236 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net 문제 소요시간: 1시간(19%) 실패 설계하기(접근방법) 1. 입력받기 쓸 돈을 입력받는다 양이 많으니 sys를 통해 입력받자 2. 구현하기 start를 잘못 잡았다 start값은 항상 쓸돈의 최대치보다는 커야하는데 평균으로 구해버렸다 start = max(plan) end = sum(plan) -> 동전 플랜의 총합 으로 잡고 이진탐색을 해준다 만약 현재 잔액이 쓸 돈보다 큰 경우 잔액에서 ..

알고리즘(백준)/이분탐색

[알고리즘/이분 탐색] 2805번 : 나무 자르기 - python

링크 : https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 소요시간: 22분 실패 설계하기(접근방법) 1. 입력받기 나무의 길이를 입력받는다 2. 구현하기 이분 탐색 문제를 풀어보았다 start 높이를 1로 가정하고 end는 모든 나무 높이의 합(최대치)로 한다 start, end의 중간값으로 나무를 잘라본 후 잘린 결과를 더해 나간다 만약 총 합이 target보다 크다면 start크기를 mid + 1..

알고리즘(백준)/동적 계획법

[알고리즘/DP] 14501번 : 퇴사 - python

링크 : https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 소요시간: 23분 20초 설계하기(접근방법) 1. 입력받기 상담 소요시간과 상담 금액을 입력받는다 2. 구현하기 이 문제는 2가지 방법으로 풀 수 있다 1. 앞에서 부터 상담리스트를 순회하는 경우 현재 날짜 + 상담소요날짜의 dp에 저장된 값보다 지금 누적상담가격이 높은 경우 지금 값으로 바꿔준다 상담을 하지않고 pass하는 경우가 있으므로 현재까지 누적상담가격 중 가장 큰 가격을 현재로 이전해준다 2. 리버스 방법 거꾸로 상담이 가능한지 검사한다 상담이 가능한 경우 현재 날짜의 상담 가격 + (현재 날짜+상담 소요 날..

알고리즘(백준)/트리

[알고리즘/트리] 1991번 : - python

링크 : https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 문제 소요시간: 연습문제 설계하기(접근방법) 1. 입력받기 트리를 딕셔너리로 입력받는다 2. 구현하기 전위 순회 중위 순회 후위 순회를 구현한다 각 함수마다 루트노드가 프린트되는 위치를 달리하면 된다 3. 출력하기 루트 노드를 출력한다 코드(출력) import sys input = sys.stdin.readline n = int(input()) tree = {} for i in..

알고리즘(백준)/동적 계획법

[알고리즘/DP] 2293번 : 동전 1 - python

링크 : https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 소요시간: 35분 실패 설계하기(접근방법) 1. 입력받기 동전과 목표를 입력받는다 2. 구현하기 dp인줄 모르고 풀때는 아이디에이션을 못했고 dp인줄 알고도 몰랐다 이 문제는 작은 동전부터 각 dp를 순회하면서 경우의 수를 추가해 주는 방식으로 푸는 것이다 1원 동전의 경우 dp[1]부터 dp[10]까지 가능한 경우의 수가 1개씩이므로 1, 11, 111 .... 1로 초기화 해준다 ..

되다
'분류 전체보기' 카테고리의 글 목록 (17 Page)