전체 글

알고리즘(백준)/구현

[알고리즘/구현] 21608번 : 상어 초등학교 - python

링크 : https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 문제 소요시간: 1시간 10분 실패 설계하기(접근방법) 1. 입력받기 친구 리스트를 입력받는다 2. 구현하기 문제의 요구사항을 구현한다 3. 출력하기 만족도의 합을 출력한다 코드(출력) # 1. 비어있는 칸 -> 좋아하는 학생이 주변에 가장 많은 칸으로 # 2. 1이 여러개면, 주변 칸 중 비어있는 칸이 가장 많은 칸 # 3. 2가 여러개면, 행의 번호가 가장 작은, 그것도 같..

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

[알고리즘/DP] 1699번 : 제곱수의 합 - python

링크 : https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 문제 소요시간: 42분 25초 실패 설계하기(접근방법) 1. 입력받기 숫자를 하나 입력받는다 2. 구현하기 백트래킹으로 오해해서 풀다가 낭패를 봤다 그리디하게 문제를 푼 이유였는데 타겟 숫자보다 작은 수 중 가장 큰 제곱수 부터 빼면 답이 나올 줄 알았는데 6100의 경우 4900을 빼주어 해나가는게 아닌 3600 + 2500의 형태로도 가능하다 따..

알고리즘(백준)/투포인터

[알고리즘/투 포인터] 1940번 : 주몽 - python

링크 : https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 문제 소요시간: 4분 14초 설계하기(접근방법) 1. 입력받기 고유번호 개수 타겟 숫자 고유번호 리스트를 입력받는다 2. 구현하기 고유하다는 문제의 조건에서 해시함수 즉 딕셔너리를 떠올릴 수 있다 15000개의 데이터를 전부 하나씩 찾는다면 시간초과에 걸릴 것이니 딕셔너리에 15000개의 데이터를 넣고 타겟 넘버인 m 에 고유번호 숫자를 뺀 값 ex) m - 7 ..

SQL

[SQL/GROUP BY] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/157340 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간 : 15분 41초 설계하기(접근방법) 1. 요구 사항 정리 1) 2021년 10월 16일에 대여 중인 자동차: 대여중 2) 2021년 10월 16일에 대여중이 아닌 자동차: 대여 가능 2. 출력 컬럼 1) CAR_ID GROUP_BY를 통해 중복 제거 2) AVAILABILITY -> 시작 날짜가 10-16 전이고 끝 날짜가 10-16 이후 인 차 리스트를 구한다 그 후 ..

SQL

[SQL/String, Date] 대여 기록이 존재하는 자동차 리스트 구하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/157341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간 : 7분 54초 설계하기(접근방법) 1. 요구 사항 정리 1) 자동차 종류 '세단' 2) 10월에 대여를 시작 START 2. 출력 컬럼 1) CAR_ID를 중복 없이 출력 -> GROUP BY를 통해 그룹화 추가 처리 1) CAR_ID 내림차순 코드(출력) SELECT C.CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS H INNE..

SQL

[SQL/GROUP BY] 조건에 맞는 사용자와 총 거래금액 조회하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/164668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간 : 12분 47초 설계하기(접근방법) 1. 요구 사항 정리 1) 총 거래 금액 70만원 이상 2) 완료된 중고거래 2. 출력 컬럼 1) USER_ID 2) NICKNAME 3) TOTAL_SALES -> 완료된 거래중에서 -> 같은 아이디로 그룹화 한후 -> 그룹화된 PRICE를 SUM()한다음 -> 70만 이상인 것들만 추출한다 추가 처리 1) TOTAL_SALES로 오..

SQL

[SQL/String, Date] 조건에 맞는 사용자 정보 조회하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/164670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간 : 13분 51초 설계하기(접근방법) 1. 요구 사항 정리 1) 거래 게시물 3건 이상 -> GROUP BY 후 HAVING절을 통해서 3개 이상 추출 2. 출력 컬럼 1) USER_ID 2) NICKNAME 3) 전체주소 전체 - CONCAT으로 주소들 전부 합하기 4) 전화번호 CONCAT, SUBSTRING으로 000-0000-0000 형태로 출력 추가 처리 1) U..

SQL

[SQL/String, Date] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 - 프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소요시간 : 17분 46 설계하기(접근방법) 1. 요구 사항 정리 1) 최고 조회수 게시물 의 정보를 찾기 위해서 MAX(VIEWS) 를 서브쿼리로 받아서 VIEWS 비교연산자에 넣어준다 WHERW VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD)) 2. 출력 컬럼 1) 파일경로 /home/grep/src/ + /B.BOARD_ID + /F...

되다
코드테일