자료구조와 알고리즘/문제풀기
-
재귀 - 백준(15654) N과 M(5) - 중복없는 오름차순 순열자료구조와 알고리즘/문제풀기 2024. 4. 16. 17:28
N과 M (5)시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초512 MB37243273202185572.945%문제N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다.N개의 자연수 중에서 M개를 고른 수열입력첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으..
-
완전탐색 - 백준[2840] 행운의 바퀴자료구조와 알고리즘/문제풀기 2024. 4. 16. 13:38
import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main (String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); char[] ans = new char[N]; Arrays.fill(ans, '?'); int curIndex = 0; while (K-- > 0) { int backStep = sc.nextInt(); char backAlphabet = sc.next().charAt(0); int nextIndex = ((curIndex - backStep) % N + N) % ..
-
완전탐색 - 백준(10250) ACM 호텔자료구조와 알고리즘/문제풀기 2024. 4. 16. 13:14
- 풀이 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); while (n-- > 0){ String[] input = br.readLine().split(" "); int h = Integer.parseInt(input[0]); int w = ..
-
완전탐색 - 백준 (10448) 유레카 문제자료구조와 알고리즘/문제풀기 2024. 4. 16. 12:49
- 풀이 import java.io.*; public class Main{ static boolean[] isEurekaNumber = new boolean[1001]; public static void main(String[] args) throws IOException{ int[] triangleNumber = new int[50]; int triagleCnt = 0; for(int i =1;;i++){ int number = i*(i+1)/2; if(number > 1000) break; triangleNumber[triagleCnt++] = number; } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int ..
-
연결리스트자료구조와 알고리즘/문제풀기 2024. 1. 15. 18:58
1. 팰린드롬 연결 리스트 1. 내풀이(13ms) 스택 이용한 풀이 public boolean isPalindrome(ListNode head) { ListNode cur = head; Stack st = new Stack(); st.push(cur.val); while(cur.next != null){ cur = cur.next; st.push(cur.val); } while(!st.isEmpty()){ int stVal = st.pop(); if(stVal != head.val){ return false; } head = head.next; } return true; } 2. 데크를 이용한 풀이 (12ms) public boolean isPalindrome(ListNode head) { Deque d..
-
배열자료구조와 알고리즘/문제풀기 2024. 1. 12. 10:07
-> 다시 도전 (물방울 가두기, 자신을 제외한 곱셈, 3더하기) -> 투포인터로 문제 해결하는 방식 조금 배웠다 (물방울 가두기,3더하기..) -> 중복값 계산하기 귀찮으면 Map에다가 key로 때려 박으면 쫌 다루기 쉬울 때가 있다. -> map.containsKey, Arrays.asList, new ArrayList(map.values()) 야무지게 외워둡시다. > 물방울 가두기 (리트코드 - 42) 1. 내 풀이(3ms) public int trap(int[] height) { int maxHeight = Arrays.stream(height).max().getAsInt(); int rainWidth=0; int left = 0; int right = height.length - 1; int l..
-
문자열자료구조와 알고리즘/문제풀기 2024. 1. 10. 18:41
- 팰린드롬을 검사하는 간단한 문제이다. - 단 문자열과 숫자만 비교해야한다. > Leetcode (125) - 유효한 팰린드롬 나의 풀이 (13ms) public boolean isPalindrome(String s) { s = s.toLowerCase(); s = s.replaceAll("[^a-z0-9]",""); int left = 0; int right = s.length()-1; for(int i=0; i right){ return true; } if(s.charAt(left) == s.charAt(right)){ left++; right--; }else{ return false; } } return true; } 1. 문자 단위로 추출해서 처리 (2ms) public boolean isPal..
-
SQL 고득점 킷 JOIN자료구조와 알고리즘/문제풀기 2023. 9. 1. 12:49
1. 주문량이 많은 아이스크림 구하기 - 내 코드 -- -- 코드를 입력하세요 -- 토탈 오더 더한 거 TOP -N 구해야함 -- FIRST_HALF 기본기 : 맛 , 외래키 SHIPMENT_ID -- JULY 기본기 SHIPMENT_ID 외래키 맛 -- => JULY를 맛 별로 그룹해서 일단 맛별 토탈 오더 구하고 -- > FIRST_HALF와 맛별로 조인 + 토탈 오더를 더한다. 이를 정렬한다. -- > 여기서 ROWNUM 3까지 구함 WITH JY as (SELECT SUM(TOTAL_ORDER) TOTAL_ORDER ,FLAVOR FROM JULY GROUP BY FLAVOR) SELECT FLAVOR FROM (SELECT jy.FLAVOR, jy.TOTAL_ORDER + fh.TOTAL_ORD..