PS 연습

· PS 연습
SELECT1. 재구매가 일어난 상품과 회원 리스트 구하기SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*)>=2 ORDER BY USER_ID, PRODUCT_ID DESC;USER_ID와 PRODUCT_ID의 쌍이 같은 행의 갯수를 구할때 GROUP_BY (USER_ID, PRODUCT_ID) 해주면 이 두개의 쌍이 같은것끼리 묶어줌 (*주의 : 쌍으로 묶은 USER_ID, PRODUCT_ID 쌍만 SELECT로 출력할수 있음)  (관련문제)https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스코드 중심..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net ✍️ 아이디어 0. 문제 이해 = k개의 수에서 6개를 골라 순서를 나열 1. 처음 아이디어가 잘못 떠올라서 강의 봄 처음 아이디어 : 입력받은 앞 숫자를 고정하고 뒤에 수만 next_permutation으로 순서 바꾸려고 했음 , for문으로 순서 바꿀 곳 한자리씩 늘려감 = too 복잡함 2. 선택의 문제이므로 선택하면 0, 선택 안하면 1을 따로 백트래킹할 배열에..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net ✍️ 아이디어 1. 문제 이해 도시 N개를 잇는 도로의 비용이 있는데 도시 N개를 모두 방문할때 최소 도로비용을 구하자 2. 순열 + 브루트포스를 이용하여 도시 N개를 방문하는 순서를 다 구함 ex) 1,2,3,4순으로 도시방문 3. 도로가 없는 경우 예외처리 if(arr[number[i]][number[i+1]] == 0) conne..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net ✍️ 아이디어 재귀 푸는법 : https://yjh0107.tistory.com/32?category=930702 [알고리즘] 재귀 알고리즘 ▶ 재귀 문제를 풀 때 생각의 흐름 반복되는 작업을 찾는다 (반복되는 부분은 재귀함수나 반복문으로 해결할수 있다) 반복되는 작업을 함수로 생각하고 input과 output의 형식을 각각 정한다 (output yjh0107.tistory.c..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 재귀랑 좀 친해져야 할거 같아서 강의 먼저 봄 ✍️ 아이디어 (풀이1 : 순서느낌으로) 1. 문제 이해 1부터 N까지 자연수 중 중복없이 M개를 고름 + 오름차순 2. 오름차순이니까 이전자리에 들어간 수가 어떤수인지 재귀 인자로 넘겨주면 그거보다 큰녀석을 탐색하면 됨 3. 어쩌피 이전 자리 수보다 큰 수만 선택될거니까 따로 수가 전에 나왔는지 check 안해도 됨 (어쩌피 이전..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ✍️ 아이디어 못풀었다...재귀 자체가 생각이 안남 ✍️소스코드 #include using namespace std; bool c[10]; // 이미 방문한 숫자인지 체크함(백트래킹) int a[10]; // 숫자 저장용 void dfs(int index, int n, int m)// 로직 자체가 dfs임 { if (index == m) // 저장이 다 이루어지면 출력해야지 {..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net ✍️ 아이디어 (처음에 잘못 접근함) 1. 문제 이해 처음엔 사용할수 있는 버튼을 가지고 모든 수의 조합을 만들려고 했는데 브루트포스는 그냥 모든 수(0~1000000)을 다 해보면 되는거였다 2. 0~1000000의 수를 다 해보면서.. 1. 이 채널에 고장난 버튼이 없는지 2. 누를수 있다면 목표 버튼이랑 최소차이가 나는지 확인 3. 고장난 버튼을 체크할때 2..
· PS 연습
👩🏻‍💻 문제링크 https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net ✍️ 아이디어 1. 문제 이해 e는 16진수 s는 29진수 m은 20진수 일때 10진수로 e=s=m이 되는 최소값을 구해보자 2. 내가 문제를 풀때는 가장 작은 수에 진수의 수만큼 더하고 가장 작은 수가 2개일 경우 두 수의 진수의 수만큼 더했다 3. 다른사람이 푼 방식은 년도를 하나씩 더하여 year = e+15x임을 이용해 (year-e)%15 == 0 을 조건으로 걸어서 year..
생선묵김치찌개
'PS 연습' 카테고리의 글 목록