코딩테스트(알고리즘, SQL)
[프로그래머스/MySQL] Lv.2 자동차 평균 대여 기간 구하기
[프로그래머스/MySQL] Lv.2 자동차 평균 대여 기간 구하기
2023.09.17문제 https://school.programmers.co.kr/learn/courses/30/lessons/157342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 복잡하게 푸는 방법이 있고 적당히 잘 하나의 쿼리로 처리하는 방법이 있습니다. 둘 중 어떤게 더 성능상 유리하다고 말씀드리긴 어렵지만 저는 GROUP BY 를 사용해서 풀이를 했습니다. 서브쿼리를 이용해도 가능해보입니다. SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) AS AVERAGE_DURATION FROM CA..
[coding test] 카카오 블라인드 2021 - 신규 아이디 추천
[coding test] 카카오 블라인드 2021 - 신규 아이디 추천
2021.10.14https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 Comment 카카오 블라인드 코딩 테스트의 요즘 트렌드는 "구현"입니다. 매년 인턴십, 블라인드 코테에 이런식으 조건을 부여하고 구현하는 문제들이 꼭 1문제씩은 출제합니다. 이런 문제를 접근할 때는 문제상에 구현의 힌트를 많이 주기때문에 문제와 주어진 예시를 잘 파악하는 것이 좋습니다. 문제 풀이 문자열을 control하는 문제인 만큼 파이썬이 유..
[백준 - 1743] 음식물 피하기 (DFS)
[백준 - 1743] 음식물 피하기 (DFS)
2020.03.31https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 문제 코레스코 콘도미니엄 8층은 학생들이 3끼의 식사를 해결하는 공간이다. 그러나 몇몇 비양심적인 학생들의 만행으로 음식물이 통로 중간 중간에 떨어져 있다. 이러한 음식물들은 근처에 있는 것끼리 뭉치게 돼서 큰 음식물 쓰레기가 된다. 이 문제를 출제한 선생님은 개인적으로 이러한 음식물을 실내화에 묻히는 것을 정말 진정으로 싫어한다. 참고로 우리가 구해야 할 답은 이 문제를 낸 조교를 맞추는 것이 아니다. 통로에 떨어진 음식물을 피해가기란 쉬운 일이 아 www.acmicpc.net 음식물이 땅에 놓여져 있으니까 그걸 피해가야합니다. 가장 큰 음식물은 뭘까요??? 찾아봅시다. 쉬운 문제입니다. 핵심 아이디어는 DFS..
[백준 - 15780] 멀티탭 충분하니?
[백준 - 15780] 멀티탭 충분하니?
2020.03.30https://www.acmicpc.net/problem/15780 15780번: 멀티탭 충분하니? 오늘은 NAVER D2 캠퍼스에서 CTP 스터디 하는날!!! 스터디 장소가 인하대학교 강의실에서 NAVER D2 캠퍼스로 바뀌었기 때문에 멀티탭 부장 준호는 스터디 전에 미리 멀티탭을 셋팅 해야 한다. CTP는 모든 사람이 사용할만큼 충분한 멀티탭을 가지고 있다. 종류는 3구부터 8구까지 다양하게 있다. 모든 사람들은 노트북만 가져오기 때문에 멀티탭 1구를 무조건 사용한다. 1구를 초과해선 안 된다. CTP에는 멀티탭에 2개이상 연속으로 코드를 꽂으면 안 www.acmicpc.net 간단히 요약하면 멀티탭을 사용할 때 1개의 멀티탭에는 연달아서 끼우면 안됩니다. 이러한 조건에 맞춰서 과연 주어진 학생수와 ..
[백준 - 1987] 알파벳 (DFS)
[백준 - 1987] 알파벳 (DFS)
2020.03.20https://www.acmicpc.net/problem/1987 1987번: 알파벳 문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 www.acmicpc.net 문제에서 요구하는 것은 (0,0) 인덱스에서 시작해서 한 칸씩 상하좌우로 이동할 때, 중복된 알파벳을 피해서 최대한 이동 가능한 횟수를 찾는..
[백준 - 7576] 토마토 (BFS)
[백준 - 7576] 토마토 (BFS)
2020.03.15https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net 문제를 요약하자면 익은 토마토가 토마토 상자에 있는 모든 토마토를 익히는 데 까지 얼마나 걸리는지 확인하는 것입니다. 바이러스가 퍼지듯이 ..