🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 먼저 테이블의 FLAVOR를 출력해야 하므로 SELECT FLAVOR 를 해준다. (두 테이블의 FLAVOR는 같으므로 아무 테이블이나 상관없어서 A.FLAVOR OR B.FLAVOR 하나만 선택해준다.) 두 테이블을 JOIN해준다. FROM TABLE A INNER JOIN TABLE B 이 때, 두 테이블의 JOIN 기분은 FLAVOR가 같아야 하는 것이므로 ON A.FLAVOR = B.FLAVOR 을 추가해준다. SELECT * 로 모두 출력해보면 아래와 같이 나온다..
분류 전체보기
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 가장먼저 BOOK_ID와 PUBLISHED_DATE을 출력해야 하므로 SELECT BOOK_ID, PUBLISHED_DATE를 했다. BOOK 이라는 테이블에서 뽑아내야 하므로 FROM BOOK 을 추가해 줬다. 그 뒤에 CATEGORY = '인문' 이라는 조건이 있으므로 WHERE CATEGORY = '인문' 조건에 출판일이 2021이어야 한다는 조건이 추가로 있으므로 SUBSTR(PUBLISHED_DATE,1,4)를 AND조건으로 추가해줬다. 출판일 기준으로 오름차순이..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 DAILY_FEE의 평균을 뽑아내야 하므로 SELECT AVG(DAILY_FEE) AS AVERAGE_FEE를 해준다. 이 때, 소수점 첫 번째 자리에서 반올림을 해야 하므로 ROUND(AVG(DAILY_FEE),0)로 ROUND를 추가해준다. 해당 테이블의 이름이 CAR_RENTAL_COMPANY_CAR 이므로 FROM CAR_RENTAL_COMPANY_CAR를 추가한다. 마지막으로 조건이 CAR_TYPE이 SUV인 차량들만 계산해야 하므로 WHERE CAR_TYPE =..
🔗 문제 링크 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net 💡 문제 풀이 및 해석 경로가 겹치지 않는 경우만 계산하면 된다. 이 경우보다는 겹칠 때, 이동을 끝내는게 구현에 용이해 보였다. 매번 bool 배열을 파라미터로 받으면 시간초과가 날 수도 있을 것 같아서 전역변수로 방문여부를 체크했다. '1 - 단순하지 않은 경로'로 구현 ⭐️ 정답 코드 및 설명 #include using namespace std; int n; double E, W, S, N; double answer = 0; bool is..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 1. 10000명정도의 사람이 들어올 수 있는데, 각각의 사람이 판매 금액의 10%씩 추천인에게 주어야한다. 2. 여기서 12원일때 1.2원이 되는게 아니고 1원씩 올라가는 것을 보니 int / 10 형식으로 올리는 것 같다. 3. 단, A->B 에서 12원을 주고, C->B 에서 18원을 줄 때, 따로따로 주면 B->D 에서 각각 1원씩 주지만, 이 계산을 한번에 진행한다면 ( 12+18 ) / 10 = 3 이 되므로 각각 계산해야 한다. 4. 0원일 때, 추천인이 없을..
🔗 문제 링크 1379번: 강의실 2 첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 www.acmicpc.net 💡 문제 풀이 및 해석 최대한 적은 강의실 사용 종료 시간과 시작 시간이 겹치는건 가능 따라서 가장 빨리 끝나는 강의 기준으로 가장 빨리 시작하는 강의가 이어서 할 수 있다면 새로운 강의실을 배정할 필요는 없다. ⭐️ 정답 코드 및 설명 #include #include #include #include #define endl "\n" using namespace std; int N; priority_queue q; // 끝나는 시간..
🔗 문제 링크 1027번: 고층 건물 세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작) www.acmicpc.net 💡 문제 풀이 및 해석 1. 입력이 50개라는 제한이 있었다. 2. 2초라는 50개에 비한 비교적 널널한 시간제한이 있었다. 3. 위의 두가지 조건을 고려하여 brute force로 진행. ⭐️ 정답 코드 및 설명 #include #include #include using namespace std; int N; int cnt[50]; vector building; void input() { cin >> N; for (int i = 0; i < N;..
문제 링크 1344번: 축구 홍준이는 축구 경기를 보고 있다. 그러다가 홍준이는 역시 두 팀 중 적어도 한 팀이 골을 소수로 득점할 확률이 궁금해 졌다. 축구 경기는 90분동안 이루어지고, 분석을 쉽게하기 위해서 경기를 5 www.acmicpc.net 💡 문제 풀이 1. 90분이라는 시간이 있고, 5분마다 결과가 나온다 -> 최대 라운드는 18라운드가 있다고 할 수 있고, 최대로 넣을 수 있는 골도 18골이다. 따라서, dp[라운드][A팀의 골수][B팀의 골수] 를 만들어 준다. 2. 매번 A팀과 B팀이 골을 넣을 수 있는 확률은 독립실행이고, 이전 라운드 확률에서 곱해주면 된다. ⭐️ 정답 코드 및 설명 #include #include using namespace std; float A, B; // A..