728x90
⬛ 프로그래머스 | LV.2 다리를 지나는 트럭 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제 설명이 애매해서 어떻게 푸는 것인지 이해가 안됐다. bridge_length 길이를 주는 이유는 매초마다 그 다리 길이만큼 (& weight 초과않는 선에서) 통과해야 다리를 지나갈 수 있기 때문이었다. 그래도 문제만 읽고 유추하기 어려웠다 1) 일단 int[] bridge를 매개변수로 주어진 다리 ..
⬛ 프로그래머스 | LV.2 과제 진행하기 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 고려해야 할 조건이 까다로워서 구현 과정이 어려웠다. 일단 Work 클래스 선언해서 st 시작 시간 기준으로 오름차순 정렬할 생각을 했고 pQ에다가 담아서 활용했고, Stack활용해서 최근 멈춘 과제 담는 용도로 썼다. 중간 중간 구현이 막히니 머리가 복잡해서 다른 분들 코드도 참고했다. 1) 과제 시작 시간..
⬛ 프로그래머스 | LV.2 의상 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 예전에 풀었던 문제를 다시 풀게 됐다. 이 문제의 경우 경우의 수로 생각해서 풀었다. 종류별로 겹칠 수는 없기 때문에 HashMap에 담아 종류별 카운팅을 먼저 진행했다. 그리고 해당 종류중에 1개를 뽑아 입거나 or 안입거나 의 케이스가 있기 때문에 그 케이스를 모두 고려해주어야 한다. (종류 + 1) X (종류 + ..
⬛ 백준 3190번. 뱀 - BFS & 구현 문풀 (java) https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위..
⬛ 프로그래머스 | LV.2 점 찍기 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 일단 데이터 크기가 k와 d 모두 100만까지 들어오기 때문에 이중for문으로 돌면 시간초과가 뜬다. 1번의 for문 순회에서 모든 계산이 끝나야 하기 때문에 좌표 하나는 고정시켜두고 그에 대해 가능한 좌표개수를 카운팅하는 게 효율적인 처리다. x든 y든 for문으로 가능한 값 순회하여 값 고정시켜두고, d 이하의..
⬛ 프로그래머스 | LV.2 3월에 태어난 여성 회원 목록 출력하기 (MySQL) https://school.programmers.co.kr/learn/courses/30/lessons/131120 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제가 요구한 대로 출력하면 된다. DATE_FORMAT()으로 형식 변환을 하지 않으면 초까지 그대로 출력 되기 때문에 출력하고자 하는 형식대로 변환을 해줘야 하고, 전화번호 null인 경우는 출력 대상 제외이므로 이 조건도 WHERE 조건에 추가해야 한다. 💚 제출 코드 -- 코드를 입력하세요..
⬛ 프로그래머스 | LV.2 호텔 대실 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1) Room 클래스 선언하여 st 기준 오름차순 우선 정렬하도록 정의한다. 2) 정렬된 RoomList 에서 visited로 체크하면서 매번 현재 room의 ed + 10 보다 st시간이 크거나 같은 room을 발견할 때마다 visit 체크 후 갱신해주면서 처리하면 된다. 3) 이럴 경우 answer는 해당 룸..
⬛ 프로그래머스 | LV.2 테이블 해시 함수 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 처음에는 문제가 무슨 말인지 이해가 도통 안됐었다 .. 그러니까 테이블 상에 행 단위로 데이터가 들어올 건데, 입력된 col번째 값 기준으로 오름차순 정렬하되, col번째 값이 같은 경우 첫 번째 값 기준으로 내림차순 정렬을 하고, 정렬된 상태에서는 입력된 row_begin~ed 범위의 데이터에 한해 XO..
⬛ 프로그래머스 | LV.2 배달 - 다익스트라 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제를 읽으면서 다익스트라 문제라고 판단했다. 시작점은 1번 정점으로 항상 고정되어 있고, 다른 모든 정점으로의 최단거리로 배달했을 때 그 거리가 K이하인 경우 배달 가능으로 판단하여 개수를 리턴하라는 문제이다. 1) Edge 클래스, distance[] 배열, graph 리스트를 선언했다. 2) road 2차원 ..
⬛ 프로그래머스 | LV.2 하노이의 탑 - 재귀 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 규칙성을 찾아야지 생각은 했지만 재귀로 푸는 거라고는 생각을 못했다… ㅎ 🎈재귀인 이유 A 기둥에 있는 탑을 1개씩 (큰거 위에 작은 거)를 순서대로 옮길 거다. 임시 기둥이 B이고 목표 기둥이 C라고 했을 때 필연적으로 다음의 과정을 거친다. 몇번을 반복할지는 모르지만 n개의 탑이 존재한다고 헀을 때 A → B..
⬛ 프로그래머스 | LV.2 연도 별 평균 미세먼지 농도 조회하기 (MySQL) https://school.programmers.co.kr/learn/courses/30/lessons/284530 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 MySQL 은 날짜 format에서 YEAR( ) → 년도 반환한다. 연도별/GROUP BY YEAR(YM) 로 묶고 나서 지역이 ‘수원’과 일치하는 컬럼들을 select 후 AVG로 평균 구한 값을 ROUND로 반올림 하면 됨 as로 별칭 지정하고 ORDER BY로 년도 오름차순 정렬 하면 최종 ..
⬛ 프로그래머스 (카카오) | LV.2 [3차] 방금그곡 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1) 일단 ‘#’ 에 대해서는 replace로 치환 처리를 해주어야 한다. 2) for문으로 musicinfos를 순회하면서 → 매번 재생시간 time을 구하고 → 해당 name과 melodyInfo를 #치환해서 들고 있는다. 이제 이 상황에서 재생시간이 음악길이보다 더 길다면 melody 정보를..
⬛ 프로그래머스 | LV.2 멀쩡한 사각형- 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 처음에는 규칙성이 명확하게 안떠올랐다 .. 일단 큰 직사각형의 특정 비율 내에서 멀쩡한 사각형은 반복될 것이라는 생각은 들었다. ex. 12: 8 ⇒ 3 : 2 비율 그런데 공식적으로 문제를 추리는 게 어려웠다. gcd 최대 공약수를 먼저 구해놓고 규칙성을 잘 추려서 공식화 시키는 거였다. 아래의 공식이 어떤 비..
⬛ 프로그래머스 | LV.2 큰 수 만들기 - 그리디 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 마냥 쉽지 않았다. 제한 조건에서 데이터가 100만 까지 들어올 수 있다고 했기 때문에 문자열 구성을 DFS 완탐으로 하는 건 불가능하다고 생각헀고, 그리디 적으로 매번 최적의 값을 고르면서 answer 값을 구성해야겠다고 생각했다. k개의 숫자를 빼서 만들 수 있는 가장 큰 값의 조합을 구해야 한다. 그리고..
⬛ 프로그래머스 (PCCP 기출) | LV.1 붕대 감기 - 단순 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 공격 attacks[][] 배열은 오름차순 정렬되어 있다고 나와있다. 그 중 max 시간대를 알아야 마지막 time처리가 가능해서 마지막 값의 attaks[N][0]의 값을 maxTime으로 두고 for문으로 (t=1~maxTime)까지 순회시켰다. 그리고 for문으로 1번의 순회에서 모든..
⬛ 프로그래머스 | LV.2 숫자 블록 - 단순 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/12923 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제를 유심히 보면서 각 값에 대해서 그 약수 중 max값이 배열값으로 담긴다는 규칙성을 발견했다. 이 데이터 크기가 무슨 10억까지로 되어 있는데.. 최대한 효율적으로 처리해야 하고 주의해야 한다. 아 그리고 처음에 각 블록에 적힌 숫자 값이 10,000,000까지인 것을 못봤다. => 걍 0 이 많길래 1..
⬛ 프로그래머스 | LV. 2 시소 짝꿍 - 비례식 활용 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 사람 수가 10만으로 들어오기 떄문에 이중for문을 돌면 반드시 시간초과가 뜬다. 효율적인 풀이로 접근해야 한다. 첫 시도 | 최대 공약수, DFS로 풀이 시도 매번 두 수에 대한 최대 공약수를 구해서 두 값에 대한 최대 공약수로 나눈 몫이 1, 2, 3, 4 에 포함되는지 확인하는 식으로 풀었다. 수의..
⬛ 프로그래머스 | LV.3 없어진 기록 찾기 (MySQL) https://school.programmers.co.kr/learn/courses/30/lessons/59042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 입양기록은 있고, 보호소 기록은 없는 데이터를 조회하는 문제였다. 생각을 좀 해서 입양 기록 ANIMAL_OUTS를 A테이블로 두고, 보호소 기록인 ANIMAL_INS를 B 테이블로 두어 LEFT OUTER JOIN을 하면 되겠다고 생각했다. 처음에는 LEFT OUTER JOIN을 하면 자연스럽게 A테이블에만 있는 데이..
⬛ 프로그래머스 (카카오) | LV.2 거리두기 확인하기 - BFS 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 처음에는 P를 갖는 x,y 좌표들을 모두 pQ에 담아서 경우의 수에 따라 처리를 하려고 했다. 조건이라 함은 맨허튼 거리를 모든 P간에 구해두고, 현재 P위치에서 맨허튼 거리 2이하의 좌표 사이에서 파티션 존재유무를 확인하면 되지 않을까 했는데, 이렇게 시도하다가 실패헀다.. 풀이를 찾아보고 이..