joonbread의 등록된 링크

키자드에 등록된 총 1673개의 포스트를 확인하실 수 있습니다.

Naver Blog

SQL_LeetCode 1661_Average Time of Process per Machine

SQL_LeetCode 1661_Average Time of Process per Machine 풀이 -- ORACLE, MSSQL SELECT T1.MACHINE_ID , ROUND((AVG(T2.TIMESTAMP - T1.TIMESTAMP)), 3) AS PROCESSING_TIME FROM ACTIVITY T1, ACTIVITY T2 WHERE T1.ACTIVITY_TYPE = 'start' AND T2.ACTIVITY_TYPE = 'end' AND T1.MACHINE_ID = T2.MACHINE_ID AND T1.PROCESS_ID = T2.PROCESS_ID GROUP BY T1.MACHINE_ID; -- MYSQL SELECT T1.MACHINE_ID , ROUND((AVG(T2.TIMESTAMP - T1.TIMESTAMP)), 3) AS PROCESSING_TIME FROM ACTIVITY T1 JOIN ACTIVITY T2 ON (T1.MACHINE_ID, T1.PRO

Naver Blog

SQL_LeetCode 1683_Invalid Tweets

SQL_LeetCode 1683_Invalid Tweets 풀이 -- ORACLE, MYSQL SELECT TWEET_ID FROM TWEETS WHERE LENGTH(CONTENT) > 15; -- MSSQL SELECT TWEET_ID FROM TWEETS WHERE LEN(CONTENT) > 15; * 출처 https://leetcode.com/problems/invalid-tweets

Naver Blog

SQL_LeetCode 1731_The Number of Employees Which Report to Each Employee

SQL_LeetCode 1731_The Number of Employees Which Report to Each Employee 풀이 -- ORACLE, MYSQL SELECT E1.EMPLOYEE_ID , E1.NAME , COUNT(E2.EMPLOYEE_ID) AS REPORTS_COUNT , ROUND(AVG(E2.AGE)) AS AVERAGE_AGE FROM EMPLOYEES E1 JOIN EMPLOYEES E2 ON E1.EMPLOYEE_ID = E2.REPORTS_TO GROUP BY E1.EMPLOYEE_ID, E1.NAME ORDER BY E1.EMPLOYEE_ID; -- MSSQL SELECT E1.EMPLOYEE_ID , E1.NAME , COUNT(E2.EMPLOYEE_ID) AS REPORTS_COUNT , ROUND(AVG(E2.AGE * 1.0), 0) AS AVERAGE_AGE FROM EMPLOYEES E1 JOIN EMPLOYEES E2 ON E1.EM

Naver Blog

JAVA_LeetCode 1725_Number Of Rectangles That Can Form The Largest Square

JAVA_LeetCode 1725_Number Of Rectangles That Can Form The Largest Square 풀이 class Solution { public int countGoodRectangles(int[][] rectangles) { int res = 0, max = 0, min = 0; for(int[] rectangle : rectangles) { min = Math.min(rectangle[0], rectangle[1]); if(min > max) { max = min; res = 1; } else if(min == max) res++; } return res; } } * 출처 https://leetcode.com/problems/number-of-rectangles-that-can-form-the-largest-square/

Naver Blog

JAVA_LeetCode 1732_Find the Highest Altitude

JAVA_LeetCode 1732_Find the Highest Altitude 풀이 class Solution { public int largestAltitude(int[] gain) { int sum = 0, max = 0; for(int i = 0; i < gain.length; i++){ sum += gain[i]; max = Math.max(sum, max); } return max; } } * 출처 https://leetcode.com/problems/find-the-highest-altitude

Naver Blog

JAVA_LeetCode 1736_Latest Time by Replacing Hidden Digits

JAVA_LeetCode 1736_Latest Time by Replacing Hidden Digits 풀이 class Solution { public String maximumTime(String time) { // 시간 제한을 위해 각 요소값을 바로바로 확인한다. char [] a = time.toCharArray(); if(a[0]=='?') a[0] = a[1] <= '3' || a[1] == '?' ? '2' : '1'; if(a[1]=='?') a[1] = a[0] == '2' ? '3' : '9'; if(a[3]=='?') a[3] = '5'; if(a[4]=='?') a[4] = '9'; return new String(a); } } * 출처 https://leetcode.com/problems/latest-time-by-replacing-hidden-digits

Naver Blog

JAVA_LeetCode 1688_Count of Matches in Tournament

JAVA_LeetCode 1688_Count of Matches in Tournament 풀이 class Solution { public int numberOfMatches(int n) { // 홀/짝수에 맞춰서 반복해준다. int cnt = 0; while(n > 1){ if(n%2==0){ cnt += n / 2; n = n / 2; }else{ cnt += (n - 1) / 2; n = (n - 1) / 2 + 1; } } return cnt; } } * 출처 https://leetcode.com/problems/count-of-matches-in-tournament/

Naver Blog

JAVA_LeetCode 1694_Reformat Phone Number

JAVA_LeetCode 1694_Reformat Phone Number 풀이 class Solution { public String reformatNumber(String number) { // 숫자 확인 StringBuilder sb = new StringBuilder(); for (int i = 0; i < number.length(); i++) { if (Character.isDigit(number.charAt(i))) sb.append(number.charAt(i)); } // 길이가 4보다 작으면 바로 반환 String str = sb.toString(); if(str.length() < 4){ return str; } // 0보다 클때까지 반복, 시간 제한 개선을 위해 break문을 넣는다. String res = ""; while(str.length() > 0){ if(str.length() < 4 ){ res += str; break; }else if(str.leng

Naver Blog

JAVA_LeetCode 1700_Number of Students Unable to Eat Lunch

JAVA_LeetCode 1700_Number of Students Unable to Eat Lunch 풀이 class Solution { public int countStudents(int[] students, int[] sandwiches) { // 학생 : 큐(선입선출), 샌드위치 : 스택(후입선출) int len = students.length; Queue<Integer> q = new LinkedList<>(); Stack<Integer> st = new Stack<>(); for (int i = 0; i < len; i++) { st.push(sandwiches[len - i - 1]); q.offer(students[i]); } // 학생과 샌드위치를 비교하며 안맞는 경우 학생을 계속해서 옮긴다. int chk = 0; while (q.size() > 0 && chk < q.size()) { if (st.peek() == q.peek()) { st.pop(); q.pol

Naver Blog

JAVA_LeetCode 1704_Determine if String Halves Are Alike

JAVA_LeetCode 1704_Determine if String Halves Are Alike 풀이 class Solution { public boolean halvesAreAlike(String s) { int len = s.length(), cnt1 = 0, cnt2 = 0; String str = "aeiouAEIOU"; // 길이 기준의 절반만큼 반복한다. for(int i = 0; i < len / 2; i++) { if(str.indexOf(s.charAt(i)) != -1) cnt1++; if(str.indexOf(s.charAt(len - 1 - i)) != -1) cnt2++; } if(cnt1 == cnt2) return true; return false; } } * 출처 https://leetcode.com/problems/determine-if-string-halves-are-alike

Naver Blog

JAVA_LeetCode 1710_Maximum Units on a Truck

JAVA_LeetCode 1710_Maximum Units on a Truck 풀이 class Solution { public int maximumUnits(int[][] boxTypes, int truckSize) { // 상자를 내림차순으로 정렬 int cnt = 0; Arrays.sort(boxTypes, (a, b)-> b[1] - a[1]); // 상자 개수 초과 x, 트럭사이즈 확인(내림차순이므로 개수파악 확인 가능) for(int i = 0; i < boxTypes.length && truckSize > 0; i++){ if(boxTypes[i][0] < truckSize){ cnt+= boxTypes[i][0] * boxTypes[i][1]; truckSize -= boxTypes[i][0]; }else{ cnt += truckSize * boxTypes[i][1]; break; } } return cnt; } } * 출처 https://leetcode.com/prob

Naver Blog

JAVA_LeetCode 1716_Calculate Money in Leetcode Bank

JAVA_LeetCode 1716_Calculate Money in Leetcode Bank 풀이 class Solution { public int totalMoney(int n) { int res = 0, money = 0, cnt = 0; for(int i = 0; i < n; i++){ // 월요일일때 초기값을 리셋해준다. if(i % 7 == 0){ cnt++; money = cnt; } res += money; money++; } return res; } } * 출처 https://leetcode.com/problems/calculate-money-in-leetcode-bank/

Naver Blog

JAVA_LeetCode 1720_Decode XORed Array

JAVA_LeetCode 1720_Decode XORed Array 풀이 class Solution { public int[] decode(int[] encoded, int first) { // first값을 넣기 위해 기존 배열길이 + 1의 배열을 선언한다. int res[] = new int[encoded.length + 1]; res[0] = first; // 비트연산자를 사용한다. for(int i = 1; i <= encoded.length; i++) res[i] = res[i - 1] ^ encoded[i - 1]; return res; } } * 출처 https://leetcode.com/problems/decode-xored-array

Naver Blog

JAVA_LeetCode 1656_Design an Ordered Stream

JAVA_LeetCode 1656_Design an Ordered Stream 풀이 class OrderedStream { int cnt; String[] str; public OrderedStream(int n) { // 포인터 값 / 배열 초기화 cnt = 0; str = new String[n]; } public List<String> insert(int idKey, String value) { List<String> list = new ArrayList<>(); // 키가 배열길이보다 작은 경우 초기화한다. if(idKey - 1 < str.length) str[idKey - 1] = value; // 값이 존재하고 포인터 값이 배열길이보다 작을때까지 반환할 리스트에 추가해준다. while(cnt < str.length && str[cnt] != null){ list.add(str[cnt]); cnt++; } return list; } } /** * Your OrderedSt

Naver Blog

JAVA_LeetCode 1668_Maximum Repeating Substring

JAVA_LeetCode 1668_Maximum Repeating Substring 풀이 class Solution { public int maxRepeating(String sequence, String word) { // stringbuilder를 이용한 풀이법이다. int cnt = 0; StringBuilder sb = new StringBuilder(word); // 포함 시 횟수를 추가하고 문자열에 더해준다. while(sequence.contains(sb)){ cnt++; sb.append(word); } return cnt; } } * 출처 https://leetcode.com/problems/maximum-repeating-substring

Naver Blog

JAVA_LeetCode 1672_Richest Customer Wealth

JAVA_LeetCode 1672_Richest Customer Wealth 풀이 class Solution { public int maximumWealth(int[][] accounts) { int max = 0, sum = 0; // 배열 요소중 최대값을 찾는다. for(int i = 0; i < accounts.length; i++){ sum = 0; for(int j = 0; j < accounts[i].length; j++) sum += accounts[i][j]; if(sum > max) max = sum; } return max; } } * 출처 https://leetcode.com/problems/richest-customer-wealth

Naver Blog

JAVA_LeetCode 1678_Goal Parser Interpretation

JAVA_LeetCode 1678_Goal Parser Interpretation 풀이 class Solution { public String interpret(String command) { // 최소 2문자를 비교해야한다는점을 이용, replace로 변환한다. return command.replace("()", "o").replace("(al)", "al"); } } * 출처 https://leetcode.com/problems/goal-parser-interpretation

Naver Blog

JAVA_LeetCode 1684_Count the Number of Consistent Strings

JAVA_LeetCode 1684_Count the Number of Consistent Strings 풀이 class Solution { public int countConsistentStrings(String allowed, String[] words) { // set에 중복값을 제거해서 담는다. Set<Character> set = new HashSet<>(); for (char c : allowed.toCharArray()) set.add(c); // 하나라도 포함되지 않으면 더하지 않음 int cnt = 0; boolean flag = true; for(int i = 0; i < words.length; i++){ flag = true; for(char c : words[i].toCharArray()){ if(!set.contains(c)) flag = false; } if(flag) cnt++; } return cnt; } } * 출처 https://leetcode.com

Naver Blog

JAVA_LeetCode 1337_The K Weakest Rows in a Matrix

JAVA_LeetCode 1337_The K Weakest Rows in a Matrix 풀이 class Solution { public int[] kWeakestRows(int[][] mat, int k) { int res[] = new int[k], arr[] = new int[mat.length]; int num = 0, min = 0; // 행 -> 열만큼 반복해서 1을 확인 for(int i = 0; i < mat.length; i++){ num = 0; for(int j = 0; j < mat[i].length; j++){ if(mat[i][j] == 1) num++; } arr[i] = num; } // k만큼 반복하며 행렬 최대값(200)과 비교하여 작은값을 체크하여 요소로 넣어준다. for(int i = 0; i < k; i++){ min = 0; for(int j = 0; j < mat.length; j++){ if(arr[j] < arr[min]) min = j;

Naver Blog

JAVA_LeetCode 1332_Remove Palindromic Subsequences

JAVA_LeetCode 1332_Remove Palindromic Subsequences 풀이 class Solution { public int removePalindromeSub(String s) { // 문자가 최대 2종류(a, b)이므로 최대값은 2로 나온다. if(s.length() == 0) return 0; // 문자가 2종류이므로 문자가 다른 경우 2를 반환한다. 아때 회문(앞, 뒤가 같은지)인지 확인한다. for(int i = 0; i < s.length(); i++){ if(s.charAt(i) != s.charAt(s.length() - 1 - i)) return 2; } return 1; } } 문제 힌트 2에서 회문 문자열이란 설명이 있기에 회문에 대해 알 수 있었다. * 출처 https://leetcode.com/problems/remove-palindromic-subsequences https://ko.wikipedia.org/wiki/%ED%9A%8C%E

Naver Blog

JAVA_LeetCode 1342_Number of Steps to Reduce a Number to Zero

JAVA_LeetCode 1342_Number of Steps to Reduce a Number to Zero 풀이 class Solution { public int numberOfSteps(int num) { int cnt = 0; while (num > 0) { num = num % 2 == 0 ? num / 2 : num - 1; cnt++; } return cnt; } } * 출처 https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/

Naver Blog

JAVA_LeetCode 1346_Check If N and Its Double Exist

JAVA_LeetCode 1346_Check If N and Its Double Exist 풀이 class Solution { public boolean checkIfExist(int[] arr) { Set<Integer> set = new HashSet<>(); // 2 * i 또는 i / 2의 몫이 있으며 i가 짝수인경우 true를 반환한다. for (int i : arr) { if (set.contains(i * 2) || (i % 2 == 0 && set.contains(i / 2))) return true; set.add(i); } return false; } } i = 0에서 배열까지 반복해서 arr-1의 길이를 가진 set을 만든다. set에 요소값을 넣기 전, 현 요소값을 조건에 맞춰 비교한다. * 출처 https://leetcode.com/problems/check-if-n-and-its-double-exist

Naver Blog

JAVA_LeetCode 1351_Count Negative Numbers in a Sorted Matrix

JAVA_LeetCode 1351_Count Negative Numbers in a Sorted Matrix 풀이 class Solution { public int countNegatives(int[][] grid) { // 행, 열 방향 모두 증가되지 않는 순서로 정렬된다는 점을 이용 int i = 0, j = grid[0].length - 1, cnt = 0; // i(행), j(열) >> 0번째 행의 맨 끝 요소값으로부터 음수를 체크 // grid의 길이 - 행을 개수로 추가한다. while(i < grid.length && j >= 0){ if (grid[i][j] < 0) { cnt += (grid.length - i); j--; } else if (grid[i][j] >= 0) { i++; } } return cnt; } } 행, 열 방향이 모두 증가되지 않는다는 점과 행, 열의 내림차순을 이용한다. 음수를 찾았을 경우 열을 감소시키고, 양수를 찾았을 경우 행값을 더해준다

Naver Blog

JAVA_LeetCode 1356_Sort Integers by The Number of 1 Bits

JAVA_LeetCode 1356_Sort Integers by The Number of 1 Bits 풀이 class Solution { public int[] sortByBits(int[] arr) { // bitcount를 이용하여 해당 값의 bit를 체크한다. // arr[i]의 최대값이 10^4이므로 비트의 상한가를 높이기 위해 해당 값 비트에 * 10001을 해준다. for (int i = 0; i < arr.length; i++) arr[i] += Integer.bitCount(arr[i]) * 10001; // 값을 오름차순으로 변경 Arrays.sort(arr); // 곱한 비트값에 10001로 나눈 나머지값으로 초기화한다. for (int i = 0; i < arr.length; i++) arr[i] %= 10001; return arr; } } Integer.bitCount를 이용, 해당 값의 비트를 구할 수 있다. 비트가 같은 경우 기존 값을 기준으로 정렬해야 하

Naver Blog

JAVA_LeetCode 1360_Number of Days Between Two Dates

JAVA_LeetCode 1360_Number of Days Between Two Dates 풀이 import java.time.LocalDate; import java.time.temporal.ChronoUnit; class Solution { public int daysBetweenDates(String date1, String date2) { LocalDate dt1 = LocalDate.parse(date1); LocalDate dt2= LocalDate.parse(date2); // JAVA 8버전에 ChoronoUnit 을 사용하여 두 날짜의 차이를 구한다. long days = ChronoUnit.DAYS.between(dt1, dt2); return Math.abs((int)days); } } Java 8버전의 ChronoUnit을 이용하여 푼 문제이다. * 출처 https://leetcode.com/problems/number-of-days-between-two-da

Naver Blog

JAVA_LeetCode 1365_How Many Numbers Are Smaller Than the Current Number

JAVA_LeetCode 1365_How Many Numbers Are Smaller Than the Current Number 풀이 class Solution { public int[] smallerNumbersThanCurrent(int[] nums) { int[] arr = new int[nums.length]; int cnt = 0; for(int i = 0; i < nums.length; i++){ cnt = 0; for(int j = 0; j < nums.length; j++){ if (nums[i] > nums[j]) cnt++; } arr[i] = cnt; } return arr; } } * 출처 https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number

Naver Blog

JAVA_LeetCode 1370_Increasing Decreasing String

JAVA_LeetCode 1370_Increasing Decreasing String 풀이 class Solution { public String sortString(String s) { int[] arr = new int[26]; // 문제 힌트 // 각 문자의 빈도를 계산한 뒤, 문자가 있으면 해당 값을 체크한다음 빈도를 줄인다. // a - z 부터 문자 체크 후 삭제 후 반대로도 실행한다. for(char ch : s.toCharArray()) arr[ch-'a']++; StringBuilder res = new StringBuilder(); while(res.length() != s.length()){ for(int i = 0; i < 26; i++){ if(arr[i] != 0){ res.append((char)(i + 'a')); arr[i]--; } } for(int i = 25; i >= 0; i--){ if(arr[i] != 0){ res.append((char)(

Naver Blog

JAVA_LeetCode 1374_Generate a String With Characters That Have Odd Counts

JAVA_LeetCode 1374_Generate a String With Characters That Have Odd Counts 풀이 class Solution { public String generateTheString(int n) { // n이 홀수, 짝수인 경우 조건에 맞춰 결과를 반환한다. return n % 2 == 1 ? "a".repeat(n) : "a".repeat(n - 1) + "b"; } } 특정 문자열에서 문자를 굳이 찾을 필요없이 n이란 수가 짝/홀수 여부에 따라 결과값이 정해진 문제이다. * 출처 https://leetcode.com/problems/generate-a-string-with-characters-that-have-odd-counts/

Naver Blog

SQL_LeetCode 1378_Replace Employee ID With The Unique Identifier

SQL_LeetCode 1378_Replace Employee ID With The Unique Identifier 풀이 -- mysql, mssql, oracle select e2.unique_id , e.name from Employees e left join EmployeeUNI e2 on e.id = e2.id; 생각보다 쉬운 문제였다. * 출처 https://leetcode.com/problems/replace-employee-id-with-the-unique-identifier

Naver Blog

JAVA_LeetCode 1379_Find a Corresponding Node of a Binary Tree in a Clone of That Tree

JAVA_LeetCode 1379_Find a Corresponding Node of a Binary Tree in a Clone of That Tree 풀이 class Solution { TreeNode node; public final TreeNode getTargetCopy(final TreeNode original, final TreeNode cloned, final TreeNode target) { // 문제가 복제된 노드에서 특정값과 같으면 해당 값을 반환한다. if(cloned == null) return cloned; if(cloned.val == target.val) node = cloned; // 좌 / 우측에 해당하는 트리를 변수로 넣어 값을 체크한다. getTargetCopy(original, cloned.left, target); getTargetCopy(original, cloned.right, target); return node; } } 문제에서 값을 참

Naver Blog

JAVA_LeetCode 1380_Lucky Numbers in a Matrix

JAVA_LeetCode 1380_Lucky Numbers in a Matrix 풀이 class Solution { public List<Integer> luckyNumbers (int[][] matrix) { int num = 0; List<Integer> ans = new ArrayList<>(); boolean flag = true; // 행렬만큼 반복할 때 먼저 행의 최소값을 구한뒤, 열에서 최대값을 발견하면 해당 값을 리스트에 넣어준다. for(int i = 0 ; i < matrix.length ; i++){ num = 0; flag = true; for(int j = 1 ; j < matrix[0].length ; j++){ if(matrix[i][j] < matrix[i][num]) num = j; } for(int k =0; k<matrix.length; k++){ if(matrix[k][num] > matrix[i][num]){ flag = false; break;

Naver Blog

JAVA_LeetCode 1385_Find the Distance Value Between Two Arrays

JAVA_LeetCode 1385_Find the Distance Value Between Two Arrays 풀이 class Solution { public int findTheDistanceValue(int[] arr1, int[] arr2, int d) { // 두 배열요소의 차이가 d보다 같거나 작은 경우, 거리값을 추가한다. int cnt = 0; for(int i = 0; i < arr1.length; i++){ for(int j = 0; j < arr2.length; j++){ if (Math.abs(arr1[i] - arr2[j]) <= d) { cnt++; break; } } } // arr1 길이에서 거리값이 존재한 요소를 뺀 값을 반환한다. return arr1.length - cnt; } } 문제 설명이 좀 이상한거 같은데, 예시에선 두 배열의 차이의 절대값이 특정 값보다 같거나 작아야한다는점이 문제설명과 좀 다르게 보였었는데.. 앞 배열에서 거리값이 존재한 요

Naver Blog

JAVA_LeetCode 1389_Create Target Array in the Given Order

JAVA_LeetCode 1389_Create Target Array in the Given Order 풀이 class Solution { public int[] createTargetArray(int[] nums, int[] index) { // arrayList를 이용하여 인덱스 위치에 요소를 추가한다. int arr[] = new int[nums.length]; ArrayList<Integer> list = new ArrayList<>(); for(int i = 0; i < nums.length; i++) list.add(index[i], nums[i]); for(int i = 0; i < nums.length; i++) arr[i] = list.get(i); return arr; } } arrayList의 인덱스, 값을 삽입 시 뒤로 밀려나는 점을 이용한다. 반환하는 값은 int 배열이므로 list의 값을 int 배열에 넣어준다. * 출처 https://leetcode.com

Naver Blog

JAVA_LeetCode 1394_Find Lucky Integer in an Array

JAVA_LeetCode 1394_Find Lucky Integer in an Array 풀이 class Solution { public int findLucky(int[] arr) { // hashmap의 key-value, getOrDefault 메서드를 사용한다. int max = -1; HashMap<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < arr.length; i++){ map.put(arr[i], map.getOrDefault(arr[i], 0) + 1); } for (int i : map.keySet()){ if (map.get(i) == i) max = Math.max(max, i); } return max; } } hashmap의 getOrDefault를 이용하여 키, 값을 설정한다. * 출처 https://leetcode.com/problems/find-lucky-integer-in-an-array

Naver Blog

JAVA_LeetCode 1399_Count Largest Group

JAVA_LeetCode 1399_Count Largest Group 풀이 class Solution { public int countLargestGroup(int n) { // hashMap의 getOrDefault를 이용한다. HashMap<Integer, Integer> map= new HashMap<>(); int sum = 0, num = 0, cnt = 0, max = 0, target = 0; for(int i = 1; i <= n; i++){ sum = 0; num = i; while(num > 0){ sum = sum + num % 10; num = num / 10; } map.put(sum, map.getOrDefault(sum, 0) + 1); } // hashmap에서 max값보다 큰 수를 찾았을 경우 그룹 수를 리셋하고, 같은 경우 그룹 수를 증가시킨다. for(int i : map.keySet()){ target = map.get(i); if(target >

Naver Blog

SQL_LeetCode_1280_Students and Examinations

SQL_LeetCode_1280_Students and Examinations 풀이 -- mysql, mssql, oracle -- cross join을 이용하여 카디션 곱을 구한뒤, examinations 테이블을 조인한다. select stu.student_id , stu.student_name , sub.subject_name , count(exam.subject_name) as attended_exams from students stu cross join subjects sub left outer join examinations exam on stu.student_id = exam.student_id and sub.subject_name = exam.subject_name group by stu.student_id, sub.subject_name, stu.student_name order by stu.student_id, sub.subject_name; * 출처 https:/

Naver Blog

JAVA_LeetCode 1281_Subtract the Product and Sum of Digits of an Integer

JAVA_LeetCode 1281_Subtract the Product and Sum of Digits of an Integer 풀이 class Solution { public int subtractProductAndSum(int n) { int sum = 0, mul = 1; // 한자리씩 체크하면서 곱/합에 따라 값을 곱/더한다. while (n > 0){ mul *= (n % 10); sum += (n % 10); n = (n / 10); } return mul -sum; } } * 출처 https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer

Naver Blog

JAVA_LeetCode 1287_Element Appearing More Than 25% In Sorted Array

JAVA_LeetCode 1287_Element Appearing More Than 25% In Sorted Array 풀이 class Solution { public int findSpecialInteger(int[] arr) { // 25%에 해당하는 몫을 구한다음 0부터 전체 길이 - 몫을 뺀 값까지 반복해서 동일한 값을 찾는다. int temp = arr.length / 4; for(int i = 0; i < (arr.length - temp); i++){ if(arr[i] == arr[i+temp]) return arr[i]; } return -1; } } * 출처 https://leetcode.com/problems/element-appearing-more-than-25-in-sorted-array

Naver Blog

JAVA_LeetCode 1290_Convert Binary Number in a Linked List to Integer

JAVA_LeetCode 1290_Convert Binary Number in a Linked List to Integer 풀이 class Solution { public int getDecimalValue(ListNode head) { // 재귀로 값을 계속해서 더해서 10진수의 형태를 갖춘다. String str =""; while(head != null){ str = str + Integer.toString(head.val); head = head.next; } // 10진수를 2진수로 변환 return Integer.parseInt(str, 2); } } * 출처 https://leetcode.com/problems/convert-binary-number-in-a-linked-list-to-integer

Naver Blog

JAVA_LeetCode 1295_Find Numbers with Even Number of Digits

JAVA_LeetCode 1295_Find Numbers with Even Number of Digits 풀이 class Solution { public int findNumbers(int[] nums) { int cnt = 0; // 반복해서 길이가 2로 나눠지는 경우 더해준다. for(int num : nums) if (String.valueOf(num).length() % 2 == 0) cnt++; return cnt; } } * 출처 https://leetcode.com/problems/find-numbers-with-even-number-of-digits

Naver Blog

JAVA_LeetCode 1299_Replace Elements with Greatest Element on Right Side

JAVA_LeetCode 1299_Replace Elements with Greatest Element on Right Side 풀이 class Solution { public int[] replaceElements(int[] arr) { // 비교값과 기본값으로 0, -1로 초기화한다. int max = -1, temp = 0; // 인덱스를 반복해서 우측부터 비교한다. for (int i = arr.length - 1; i >= 0; i--){ temp = arr[i]; arr[i] = max; max = Math.max(max, temp); } return arr; } } * 출처 https://leetcode.com/problems/replace-elements-with-greatest-element-on-right-side

Naver Blog

JAVA_LeetCode 1304_Find N Unique Integers Sum up to Zero

JAVA_LeetCode 1304_Find N Unique Integers Sum up to Zero 풀이 class Solution { public int[] sumZero(int n) { // 2요소값을 설정시 각 요소 값을 양수, 음수 값으로 설정한다음, 인덱스를 2씩 증가시킨다. int[] res = new int[n]; for (int i = 0; i < n - 1; i += 2) { res[i] = (i + 1); res[i + 1] = -(i + 1); } return res; } } * 출처 https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero

Naver Blog

JAVA_LeetCode 1309_Decrypt String from Alphabet to Integer Mapping

JAVA_LeetCode 1309_Decrypt String from Alphabet to Integer Mapping 풀이 class Solution { public String freqAlphabets(String s) { // 10#~26#에 맞는 숫자를 더한 뒤 해당 값을 소문자로 매핑한다. for(int i = 10; i <= 26; i++) { s = s.replaceAll(i + "#", (char)('a' + (i - 1)) + ""); } // 1 ~ 9에 맞는 숫자를 더한 뒤 해당 값을 소문자로 매핑한다. for(int i = 1; i <= 9; i++) { s = s.replaceAll(i + "", (char)('a' + (i - 1)) + ""); } return s; } } * 출처 https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping

Naver Blog

JAVA_LeetCode 1313_Decompress Run-Length Encoded List

JAVA_LeetCode 1313_Decompress Run-Length Encoded List 풀이 class Solution { public int[] decompressRLElist(int[] nums) { int len = 0, add = 0; // 배열 크기를 구하기 위해 각 쌍의 앞 인덱스 요소를 추출한다. for (int i = 0; i < nums.length; i += 2) len += nums[i]; int[] array = new int[len]; // 배열의 fill 메서드로 num1 인덱스부터 추출한 요소값 -1까지 nums[i + 1]값으로 초기화한다. for (int i = 0; i < nums.length; i += 2) { Arrays.fill(array, add, add + nums[i], nums[i + 1]); add += nums[i]; } return array; } } * 출처 https://leetcode.com/problems/decomp

Naver Blog

JAVA_LeetCode 1317_Convert Integer to the Sum of Two No-Zero Integers

JAVA_LeetCode 1317_Convert Integer to the Sum of Two No-Zero Integers 풀이 class Solution { public int[] getNoZeroIntegers(int n) { // 특정 수(i)와 n - i의 수에서 '0'이 미포함인지 확인한다. for(int i = 0; i < n; i++){ if(chk(i) && chk(n - i)){ return new int[] {i , n - i}; } } return null; } // 숫자 '0'이 포함됬는지 확인한다. private boolean chk(int i){ return String.valueOf(i).indexOf('0') == -1; } } 문제의 풀이법은 특정 수(이하 n)에 대해 특정 값(이하 i)을 뺀 수와 i의 수에서 0이 포함됬는지 확인하는 문제였다. 특정 숫자를 문자열로 변환했을 때 indexOf('0')를 이용하여 문자열에서 '0'을 미호함하는지 확인한

Naver Blog

JAVA_LeetCode 1323_Maximum 69 Number

JAVA_LeetCode 1323_Maximum 69 Number 풀이 class Solution { public int maximum69Number (int num) { // 숫자를 배열화한다음 숫자 중 6을 찾으면 해당 값을 9로 변경한 뒤 형변환된 숫자로 반환한다. char[] arr = String.valueOf(num).toCharArray(); for (int i = 0; i < arr.length; ++i){ if (arr[i] == '6') { arr[i] = '9'; return Integer.valueOf(String.valueOf(arr)); } } return num; } } * 출처 https://leetcode.com/problems/maximum-69-number

Naver Blog

SQL_LeetCode 1013_Partition Array Into Three Parts With Equal Sum

SQL_LeetCode 1013_Partition Array Into Three Parts With Equal Sum 풀이 -- mysql SELECT p.product_name , SUM(o.unit) AS unit FROM products p join orders o ON p.product_id = o.product_id WHERE o.order_date BETWEEN '2020-02-01' AND '2020-02-29' GROUP BY p.product_name HAVING unit >= 100; -- mssql, oracle SELECT p.product_name , SUM(o.unit) AS unit FROM products p join orders o ON p.product_id = o.product_id WHERE o.order_date BETWEEN '2020-02-01' AND '2020-02-29' GROUP BY p.product_name HAVING SUM(o.

Naver Blog

JAVA_LeetCode 1013_Partition Array Into Three Parts With Equal Sum

JAVA_LeetCode 1013_Partition Array Into Three Parts With Equal Sum 풀이 class Solution { public int[] arrayRankTransform(int[] arr) { // 배열을 복사한다음 정렬한다. int[] arr2 = arr.clone(); Arrays.sort(arr2); HashMap<Integer,Integer> map=new HashMap<>(); // putIfAbsent를 이용하여 정렬된 요소값을 키로 오름차순 값을 저장한다. for(int i = 0; i < arr2.length; i++) map.putIfAbsent(arr2[i], map.size()+1); // 오름차순 값을 기존 배열 요소값으로 초기화해준다. for(int i = 0; i < arr2.length; i++) arr[i] = map.get(arr[i]); return arr; } } * 출처 https://leetcode.co

Naver Blog

JAVA_LeetCode 1185_Day of the Week

JAVA_LeetCode 1185_Day of the Week 풀이 import java.time.DayOfWeek; import java.time.LocalDate; class Solution { public String dayOfTheWeek(int day, int month, int year) { String[] week = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; LocalDate date = LocalDate.of(year, month, day); return week[date.getDayOfWeek().getValue() - 1]; } } * 출처 https://leetcode.com/problems/day-of-the-week Day of the Week - LeetCode Can you solve this real interview question? Day of the

Naver Blog

JAVA_LeetCode 1189_Maximum Number of Balloons

JAVA_LeetCode 1189_Maximum Number of Balloons 풀이 class Solution { public int maxNumberOfBalloons(String text) { int b = 0, a = 0, l = 0, o = 0, n = 0; for(char ch : text.toCharArray()){ switch(ch){ case 'b': b++; break; case 'a': a++; break; case 'l': l++; break; case 'o': o++; break; case 'n': n++; break; } } return Math.min(Math.min(o/2, l/2), Math.min(Math.min(b, a), n)); } } hashmap을 사용하기엔 간단히 case문을 이용하여 풀었다. 특정 문자의 범위가 좁으며, 'o', 'l'이 2번 나오기때문에 포함여부의 최소값을 구할 때 해당 문자는 2로 나눈 값을 구한다. * 출처 http

Naver Blog

JAVA_LeetCode 1200_Minimum Absolute Difference

JAVA_LeetCode 1200_Minimum Absolute Difference 풀이 class Solution { public List<List<Integer>> minimumAbsDifference(int[] arr) { // 정렬 후 앞 뒤 차이 절대값중 가장 작은 값을 체크 List<List<Integer>> list = new ArrayList<>(); Arrays.sort(arr); int min = Integer.MAX_VALUE; for(int i = 0; i < arr.length-1;i++) min = Math.min(min, Math.abs(arr[i] - arr[i + 1])); // 정렬 배열값 중 앞 뒤 차이의 절대값이 최소값과 일치한 경우 리스트에 넣는다. for(int i = 0;i < arr.length - 1; i++){ if(Math.abs(arr[i] - arr[i + 1]) == min) list.add(Arrays.asList(arr[i],

Naver Blog

JAVA_LeetCode 1207_Unique Number of Occurrences

JAVA_LeetCode 1207_Unique Number of Occurrences 풀이 class Solution { public boolean uniqueOccurrences(int[] arr) { HashMap<Integer, Integer> map = new HashMap<>(); // 값 체크 for (int i : arr) { map.put(i, map.getOrDefault(i, 0) + 1); } HashSet<Integer> countMap = new HashSet<>(); // 발생횟수 체크 for (int count : map.values()) { if (!countMap.add(count)) { return false; } } return true; } } * 출처 https://leetcode.com/problems/unique-number-of-occurrences Unique Number of Occurrences - LeetCode Can you sol

Naver Blog

SQL_LeetCode 1211_Queries Quality and Percentage

SQL_LeetCode 1211_Queries Quality and Percentage 풀이 -- mysql, oracle SELECT query_name , round(avg(rating / position),2) as quality , round(avg(case when rating < 3 then 1 else 0 end) * 100, 2) as poor_query_percentage FROM Queries WHERE query_name IS NOT NULL GROUP BY query_name; -- mssql SELECT query_name , round(avg(cast(rating as decimal) / position), 2) as quality , round(avg((case when rating < 3 then 1 else 0 end) * cast(100 as decimal)), 2) as poor_query_percentage FROM Queries WHERE que

Naver Blog

JAVA_LeetCode 1217_Minimum Cost to Move Chips to The Same Position

JAVA_LeetCode 1217_Minimum Cost to Move Chips to The Same Position 풀이 class Solution { public int minCostToMoveChips(int[] position) { int num1 = 0, num2 = 0; // 위치 1, 2로 옮기는 경우를 체크한다. for(int chips : position){ if(chips % 2 == 0) { num1++; }else { num2++; } } // 위치 이동 값중 가장 작은 값을 반환한다. return Math.min(num1, num2); } } 문제내용은 모든 칩을 한 위치에 모으는 문제인데, 첫번째 이동은 무료라는 점을 이용하여 위치1과 위치 2로 각각의 홀수, 짝수 칩을 이동시킨다. 거기서 해당 개수에 맞춰 횟수를 체크하고 가장 작은 값을 반환한다. * 출처 https://leetcode.com/problems/minimum-cost-to-move-chip

Naver Blog

JAVA_LeetCode 1221_Split a String in Balanced Strings

JAVA_LeetCode 1221_Split a String in Balanced Strings 풀이 class Solution { public int balancedStringSplit(String s) { int cnt = 0, res = 0; for(int i = 0; i < s.length(); i++){ if(s.charAt(i) == 'R') cnt++; if(s.charAt(i) == 'L') cnt--; if(cnt == 0) res++; } return res; } } * 출처 https://leetcode.com/problems/split-a-string-in-balanced-strings/ Split a String in Balanced Strings - LeetCode Can you solve this real interview question? Split a String in Balanced Strings - Balanced strings are those t

Naver Blog

JAVA_LeetCode 1232_Check If It Is a Straight Line

JAVA_LeetCode 1232_Check If It Is a Straight Line 풀이 class Solution { public boolean checkStraightLine(int[][] coordinates) { if(coordinates.length <= 2) return true; int x0 = coordinates[0][0], y0 = coordinates[0][1], x1 = coordinates[1][0], y1 = coordinates[1][1]; for(int i = 0;i< coordinates.length;i++){ int x2 = coordinates[i][0]; int y2 = coordinates[i][1]; if((y0 - y1) * (x2 - x1) != (y2 - y1) * (x0 - x1)) return false; } return true; } } * 출처 https://leetcode.com/problems/check-if-it-is-a

Naver Blog

SQL_LeetCode_1251_Average Selling Price

SQL_LeetCode_1251_Average Selling Price 풀이 -- mysql SELECT p.product_id , IFNULL(ROUND(SUM(p.price * u.units) / SUM(u.units), 2), 0) as average_price FROM prices p LEFT JOIN unitssold u ON p.product_id = u.product_id AND u.purchase_date BETWEEN p.start_date AND p.end_date GROUP BY p.product_id; -- mssql SELECT p.product_id , ISNULL(ROUND(SUM(p.price * u.units) * 1.0 / SUM(u.units), 2), 0) as average_price FROM prices p LEFT JOIN unitssold u ON p.product_id = u.product_id AND u.purchase_date BETW

Naver Blog

JAVA_LeetCode 1252_Cells with Odd Values in a Matrix

JAVA_LeetCode 1252_Cells with Odd Values in a Matrix 풀이 class Solution { public int oddCells(int m, int n, int[][] indices) { int[][] arr=new int[m][n]; int cnt=0, row = 0, col = 0; // indices에서 값을 추출한다. for(int i=0;i<indices.length;i++){ row = indices[i][0]; col = indices[i][1]; for(int j = 0;j < n; j++) arr[row][j]++; for(int j = 0;j < m; j++) arr[j][col]++; } // 홀수 체크 for(int j = 0;j < m; j++){ for(int k = 0;k < n; k++){ if(arr[j][k] % 2 != 0) cnt++; } } return cnt; } } * 출처 https://leetcode.

Naver Blog

JAVA_LeetCode 1260_Shift 2D Grid

JAVA_LeetCode 1260_Shift 2D Grid 풀이 class Solution { public List<List<Integer>> shiftGrid(int[][] grid, int k) { int m = grid.length, n = grid[0].length, index = 0; int tot = m*n; // k값이 총길이보다 작도록 변환 k = k % tot; List<List<Integer>> list = new ArrayList<>(); // (1차원 배열의 길이 - 밀려난 수 + 현재 위치) % 1차원 배열의 길이를 인덱스로 정한다. for(int i = 0; i < m; i++) list.add(new ArrayList<>()); for(int i = 0; i < tot; i++) { index = (tot - k + i) % tot; list.get(i / n).add(grid[index / n][index % n]); } return list; } } *

Naver Blog

JAVA_LeetCode 1266_Minimum Time Visiting All Points

JAVA_LeetCode 1013_Partition Array Into Three Parts With Equal Sum 풀이 class Solution { public int minTimeToVisitAllPoints(int[][] points) { int num1, num2, cnt=0; // 이후 위치 - 현재 위치의 절대값을 구한 뒤 가장 큰 값을 구해 더해준다. for(int i = 0;i < points.length - 1; i++){ num1 = Math.abs(points[i + 1][0] - points[i][0]); num2 = Math.abs(points[i + 1][1] - points[i][1]); cnt += Math.max(num1,num2); } return cnt; } } * 출처 https://leetcode.com/problems/minimum-time-visiting-all-points/

Naver Blog

JAVA_LeetCode 1275_Find Winner on a Tic Tac Toe Game

JAVA_LeetCode 1275_Find Winner on a Tic Tac Toe Game 풀이 class Solution { public String tictactoe(int[][] moves) { // moves의 길이, row와 col값, 왼쪽 대각선, 오른쪽 대각선 미리 선언한다. int len = moves.length; int[][] row = new int[2][3], col = new int[2][3]; int[] flag1 = new int[2], flag2 = new int[2]; for (int i = 0; i < len; ++i) { int num1 = moves[i][0], num2 = moves[i][1]; int j = i % 2; // 각 row또는 col의 수가 총 3인경우 또는 값이 같거나(왼쪽 대각선) 둘이 더한 값이 2일때(오른쪽 대각선) 해당 플래그 값이 3인경우 if (++row[j][num1] == 3 || ++col[j][num2] ==

Naver Blog

JAVA_LeetCode 1122_Relative Sort Array

JAVA_LeetCode 1122_Relative Sort Array 풀이 class Solution { public int[] relativeSortArray(int[] arr1, int[] arr2) { Map<Integer,Integer> map = new HashMap<>(); int cnt = 0, cnt2 = 0; for(int num : arr2) map.put(num, 0); for(int i = 0; i < arr1.length; i++){ if(map.containsKey(arr1[i])){ map.put(arr1[i], map.get(arr1[i]) + 1); arr1[i] = -1; } } Arrays.sort(arr1); for(int num: arr2){ cnt2 = map.remove(num); while (cnt2 > 0){ arr1[cnt++] = num; cnt2--; } } return arr1; } } * 출처 https://leetcode.com

Naver Blog

JAVA_LeetCode 1128_Number of Equivalent Domino Pairs

JAVA_LeetCode 1128_Number of Equivalent Domino Pairs 풀이 class Solution { public int numEquivDominoPairs(int[][] dominoes) { // dominoes[i].length가 1~9사이 // dominoes[i][j]에서 i < j인 도미노 중 조건에 맞는 도미노 찾기 int[] cnt = new int[100]; int res = 0, num1 = 0, num2 = 0; for (int[] domino : dominoes) { num1 = domino[0] < domino[1] ? domino[1] : domino[0]; num2 = domino[0] < domino[1] ? domino[0] : domino[1]; // num1이나 num2에 곱해도 상관 x <- 단순히 인덱스를 활용하기 위해 10을 곱함 res += cnt[num1 * 10 + num2]++; } return res; } }

Naver Blog

JAVA_LeetCode 1137_N-th Tribonacci Number

JAVA_LeetCode 1137_N-th Tribonacci Number 풀이 class Solution { public int tribonacci(int n) { int [] num = new int[n+1]; if(n == 0) return n; if(n == 1 || n == 2) return 1; num[0] = 0; num[1] = 1; num[2] = 1; for(int i = 3;i<=n;i++){ num[i] = num[i - 1] + num[i - 2] + num[i - 3]; } return num[n]; } } * 출처 https://leetcode.com/problems/n-th-tribonacci-number N-th Tribonacci Number - LeetCode Can you solve this real interview question? N-th Tribonacci Number - The Tribonacci sequence Tn is defined

Naver Blog

JAVA_LeetCode 1154_Day of the Year

JAVA_LeetCode 1154_Day of the Year 풀이 import java.time.LocalDate; class Solution { public int dayOfYear(String date) { return LocalDate.parse(date).getDayOfYear(); } } * 출처 https://leetcode.com/problems/day-of-the-year Day of the Year - LeetCode Can you solve this real interview question? Day of the Year - Given a string date representing a Gregorian calendar [https://en.wikipedia.org/wiki/Gregorian_calendar] date formatted as YYYY-MM-DD, return the day number of the year. Example 1: Input: date

Naver Blog

JAVA_LeetCode 1160_Find Words That Can Be Formed by Characters

JAVA_LeetCode 1160_Find Words That Can Be Formed by Characters 풀이 class Solution { public int countCharacters(String[] words, String chars) { Map<Character, Integer> ch = new HashMap<>(); // 문자 개수만큼 실행 for (char c : chars.toCharArray()) { ch.put(c, 1 + ch.getOrDefault(c, 0)); } int res = 0; for (String word : words) { Map<Character, Integer> copy = new HashMap<>(ch); for (char c : word.toCharArray()) { if (copy.containsKey(c) && copy.get(c) != 0) { copy.put(c, copy.get(c) - 1); } else { res -= w

Naver Blog

JAVA_LeetCode 1175_Prime Arrangements

JAVA_LeetCode 1175_Prime Arrangements 풀이 class Solution { public int numPrimeArrangements(int n) { int mod = (int)(Math.pow(10,9) + 7); int cnt = isPrime(n); // 소수! * (n - 소수)! % mod return (int) ((fac(cnt, mod) * fac(n - cnt, mod)) % mod); } private int isPrime(int n) { // 소수 구하기 boolean[] prime = new boolean[n + 1]; int cnt = 0; Arrays.fill(prime, 2, n + 1, true); for (int i = 0; i * i <= n; ++i){ if (prime[i]){ for (int j = i * i; j <= n; j += i) prime[j] = false; } } for (boolean bool : prim

Naver Blog

JAVA_LeetCode 1184_Distance Between Bus Stops

JAVA_LeetCode 1184_Distance Between Bus Stops 풀이 class Solution { public int distanceBetweenBusStops(int[] distance, int start, int destination) { // 전체값 구하기 int totalSum = 0; for (int dist : distance) totalSum += dist; // 시작값이 종료값보다 큰 경우 변경 if (start > destination) { int temp = start; start = destination; destination = temp; } int sum = 0; for (int i = start; i < destination; i++) sum += distance[i]; // 총값에서 시작->종료값을 뺀 값과 시작->종료값을 비교하여 최소값 출력 return Math.min(sum, totalSum - sum); } } * 출처 https

Naver Blog

SQL 문제 27 - SQL Project Planning(HackerRank)

SQL 문제 27 - SQL Project Planning(HackerRank) SQL Project Planning 풀이 SELECT START_DATE, MIN(END_DATE) FROM ( SELECT START_DATE FROM PROJECTS WHERE START_DATE NOT IN ( SELECT END_DATE FROM PROJECTS)) A, ( SELECT END_DATE FROM PROJECTS WHERE END_DATE NOT IN ( SELECT START_DATE FROM PROJECTS)) B WHERE A.START_DATE < B.END_DATE GROUP BY A.START_DATE ORDER BY (MIN(B.END_DATE) - A.START_DATE), A.START_DATE; - 시작날짜, 종료날짜가 연속된 날짜일 경우 해당 TASK_ID는 같은 프로젝트인데, 프로젝트 완료 시 걸렸던 일수를 기준을 알기 위해 연속된 날짜를 조인 조건으로 테이블

Naver Blog

SQL 문제 28 - Symmetric Pairs(HackerRank)

SQL 문제 27 - Symmetric Pairs(HackerRank) - 조건은 다음과 같다. 1. 비교대상 1의 x와 대상 2의 y가 같고 대상1의 y와 대상 2의 x값이 같아야한다. 2. 1에서 만약 둘중 하나만 같을 경우 성립되지 않는다. 3. x <= y인 케이스만 오름차순으로 출력한다. Symmetric Pairs SELECT A.X, A.Y FROM FUNCTIONS A RIGHT OUTER JOIN FUNCTIONS B ON A.X = B.Y AND A.Y = B.X GROUP BY A.X, A.Y HAVING COUNT(A.X) > 1 OR A.X < A.Y ORDER BY A.X; - 조건 2가 맞을 경우 해당 연결된 비교대상을 SELECT 시 그룹화를 하면 X를 기준으로 순차적으로 나온다.(X값 기준, 오름차순으로 여러 Y값 출력) - 위의 SELECT 결과에서 조건 3에 맞춰 X <= Y 가 되도록 HAVING에 조건 주기 * 출처 Symmetric Pairs

Naver Blog

SQL 문제 29 - Revising Aggregations - The Sum Function(HackerRank)

SQL 문제 29 - Revising Aggregations - The Sum Function(HackerRank) Revising Aggregations - The Sum Function 풀이 SELECT SUM(POPULATION) FROM CITY WHERE DISTRICT = 'California'; - 'California' 구역의 POPULATION 총 값을 구하는 문제 * 출처 Revising Aggregations - The Sum Function | HackerRank Query the total population of all cities for in the District of California. www.hackerrank.com

Naver Blog

SQL 문제 30 - Revising Aggregations - The Count Function(HackerRank)

SQL 문제 30 - Revising Aggregations - The Count Function(HackerRank) Revising Aggregations - The Count Function 풀이 SELECT COUNT(1) FROM CITY WHERE POPULATION > 100000; * 출처 Revising Aggregations - The Count Function | HackerRank Query the number of cities having populations larger than 100000. www.hackerrank.com

Naver Blog

SQL 문제 31 - Revising Aggregations - Averages(HackerRank)

SQL 문제 31 - Revising Aggregations - Averages(HackerRank) Revising Aggregations - Averages 풀이 SELECT AVG(POPULATION) FROM CITY WHERE DISTRICT = 'California'; * 출처 Revising Aggregations - Averages | HackerRank Query the average population of all cities in the District of California. www.hackerrank.com

Naver Blog

SQL 문제 32 - Average Population(HackerRank)

SQL 문제 32 - Average Population(HackerRank) Average Population 풀이 SELECT FLOOR(AVG(POPULATION)) FROM CITY; * 출처 Average Population | HackerRank Query the average population of all cities, rounded down to the nearest integer. www.hackerrank.com

Naver Blog

SQL 문제 33 - Japan Population(HackerRank)

SQL 문제 33 - Japan Population(HackerRank) Japan Population 풀이 SELECT SUM(POPULATION) FROM CITY WHERE COUNTRYCODE = 'JPN'; * 출처 Japan Population | HackerRank Query to the sum of the populations of all Japanese cities in CITY. www.hackerrank.com

Naver Blog

SQL 문제 34 - Population Density Difference(HackerRank)

SQL 문제 34 - Population Density Difference(HackerRank) Population Density Difference 풀이 SELECT MAX(POPULATION) - MIN(POPULATION) FROM CITY; * 출처 Population Density Difference | HackerRank Query the difference between the maximum and minimum city populations in CITY. www.hackerrank.com

Naver Blog

SQL 문제 35 - The Blunder(HackerRank)

SQL 문제 35 - The Blunder(HackerRank) The Blunder 풀이 SELECT CEIL(AVG(SALARY) - AVG(REPLACE(SALARY,0,''))) FROM EMPLOYEES; - 문제 내용이 실제 값 평균과 값들에서 0을 빼고 난 값들의 평균을 뺀 값을 출력하라는데, 소수점 이하는 출력 하지말라고 해서 CEIL함수를 사용했다. * 출처 The Blunder | HackerRank Query the amount of error in Sam's result, rounded up to the next integer. www.hackerrank.com

Naver Blog

SQL 문제 36 - Top Earners(HackerRank)

SQL 문제 36 - Top Earners(HackerRank) Top Earners 풀이 -- ORACLE SELECT T.* FROM ( SELECT (MONTHS * SALARY) || ' ' || COUNT(MONTHS * SALARY) FROM EMPLOYEE GROUP BY MONTHS * SALARY ORDER BY MONTHS * SALARY DESC )T WHERE ROWNUM = 1; -- MYSQL SELECT CONCAT(T.MAX_NUM,' ',T.CNT) FROM ( SELECT (MONTHS * SALARY) AS MAX_NUM , COUNT(MONTHS * SALARY) AS CNT FROM EMPLOYEE GROUP BY MAX_NUM ORDER BY MAX_NUM DESC limit 1 ) T; - months와 salary 컬럼 곱할 때 최대값과 해당하는 사람들 수를 공백을 기준으로 출력하는 문제이다. - 곱한값을 기준으로 group by로 사람 수

Naver Blog

SQL 문제 7 - Weather Observation Station 2(HackerRank)

SQL 문제 7 - Weather Observation Station 2(HackerRank) Weather Observation Station 2 풀이 -- ORACLE SELECT ROUND(SUM(LAT_N),2) || ' ' || ROUND(SUM(LONG_W),2) FROM STATION -- MYSQL SELECT CONCAT(ROUND(SUM(LAT_N),2),' ',ROUND(SUM(LONG_W),2)) FROM STATION * 출처 Top Earners | HackerRank Find the maximum amount of money earned by any employee, as well as the number of top earners (people who have earned this amount). www.hackerrank.com

Naver Blog

SQL 문제 37 - Weather Observation Station 13(HackerRank)

SQL 문제 37 - Weather Observation Station 13(HackerRank) Weather Observation Station 13 풀이 -- ORACLE SELECT ROUND(SUM(LAT_N),4) FROM STATION WHERE LAT_N BETWEEN 38.7880 AND 137.2345; -- MYSQL SELECT TRUNCATE(SUM(LAT_N),4) FROM STATION WHERE LAT_N < 38.7880 AND LAT_N > 137.2345; * 출처 Weather Observation Station 13 | HackerRank Query the sum of Northern Latitudes having values greater than 38.7880 and less than 137.2345, truncated to 4 decimal places. www.hackerrank.com

Naver Blog

SQL 문제 37 - Weather Observation Station 14(HackerRank)

SQL 문제 37 - Weather Observation Station 14(HackerRank) Weather Observation Station 14 풀이 SELECT ROUND(MAX(LAT_N),4) FROM STATION WHERE LAT_N < 137.2345; * 출처 Weather Observation Station 14 | HackerRank Query the greatest value of the Northern Latitudes from STATION that are under 137.2345 and truncated to 4 decimal places. www.hackerrank.com

Naver Blog

SQL 문제 40 - Weather Observation Station 17(HackerRank)

SQL 문제 40 - Weather Observation Station 17(HackerRank) Weather Observation Station 17 풀이 SELECT ROUND(LONG_W,4) FROM STATION WHERE LAT_N = (SELECT MIN(LAT_N) FROM STATION WHERE LAT_N > 38.7780); * 출처 Weather Observation Station 17 | HackerRank Query the Western Longitude for the smallest value of the Northern Latitudes greater than 38.7780 in STATION and round to 4 decimal places. www.hackerrank.com

Naver Blog

SQL 문제 41 - Weather Observation Station 18(HackerRank)

SQL 문제 41 - Weather Observation Station 18(HackerRank) Weather Observation Station 18 풀이 SELECT ROUND( ABS(MIN(LAT_N)-MAX(LAT_N)) + ABS(MIN(LONG_W)-MAX(LONG_W)) ,4) FROM STATION; * 출처 Weather Observation Station 18 | HackerRank Query the Manhattan Distance between two points, round or truncate to 4 decimal digits. www.hackerrank.com

Naver Blog

SQL 문제 42 - Weather Observation Station 19(HackerRank)

SQL 문제 42 - Weather Observation Station 19(HackerRank) Weather Observation Station 19 풀이 SELECT ROUND( SQRT( POWER(MAX(LAT_N) - MIN(LAT_N), 2) + POWER(MAX(LONG_W) - MIN(LONG_W), 2) ) , 4) FROM STATION; - 유클리드 호제법에 맞춰서 푸는 문제이다. * 출처 유클리드 호제법 - 위키백과, 우리 모두의 백과사전 1월 29일부터 2월 26일까지 동유럽 에디터톤 이 진행됩니다. 2월 4일부터 38일 동안 2022 베이징 동계 올림픽 에디터톤 이 진행됩니다. 위키컨퍼런스 서울 2022 기획을 위한 커뮤니티 참여 설문 조사 에 참여해 주세요. 사용자:Takuyakoz 에 대한 관리자 선거 가 2022년 2월 28일 (월) 20:20 (KST)까지 진행됩니다. 58개 언어 접힘 유클리드 호제법 위키백과, 우리 모두의 백과사전. 유클리드 호제

Naver Blog

SQL 문제 43 - Weather Observation Station 20(HackerRank)

SQL 문제 43 - Weather Observation Station 20(HackerRank) Weather Observation Station 20 풀이 SELECT ROUND(S1.LAT_N,4) AS MEDIAN FROM STATION S1 WHERE (SELECT COUNT(LAT_N) FROM STATION WHERE LAT_N < S1.LAT_N) = (SELECT COUNT(LAT_N) FROM STATION WHERE LAT_N > S1.LAT_N); - 중간부분을 찾아서 푸는 문제이다. * 출처 Top Earners | HackerRank Find the maximum amount of money earned by any employee, as well as the number of top earners (people who have earned this amount). www.hackerrank.com

Naver Blog

SQL 문제 44 - Population Census(HackerRank)

SQL 문제 44 - Population Census(HackerRank) Population Census 풀이 SELECT SUM(C1.POPULATION) FROM CITY C1 INNER JOIN COUNTRY C2 ON C1.COUNTRYCODE = C2.CODE WHERE C2.CONTINENT = 'Asia'; * 출처 Population Census | HackerRank Query the sum of the populations of all cities on the continent 'Asia'. www.hackerrank.com

Naver Blog

SQL 문제 45 - African Cities(HackerRank)

SQL 문제 45 - African Cities(HackerRank) African Cities 풀이 SELECT C1.NAME FROM CITY C1 LEFT OUTER JOIN COUNTRY C2 ON C1.COUNTRYCODE = C2.CODE WHERE C2.CONTINENT = 'Africa'; * 출처 African Cities | HackerRank Query the names of all cities on the continent 'Africa'. www.hackerrank.com

Naver Blog

SQL 문제 14 - Employees With Missing Information LeetCode 1965

SQL 문제 14 - Employees With Missing Information LeetCode 1965 Employees With Missing Information 풀이 -- ORACLE SELECT NVL(E.EMPLOYEE_ID, S.EMPLOYEE_ID) AS EMPLOYEE_ID FROM EMPLOYEES E FULL OUTER JOIN SALARIES S ON E.EMPLOYEE_ID = S.EMPLOYEE_ID WHERE SALARY IS NULL OR NAME IS NULL ORDER BY EMPLOYEE_ID; -- MYSQL SELECT EMPLOYEE_ID FROM( SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE EMPLOYEE_ID NOT IN (SELECT EMPLOYEE_ID FROM SALARIES) UNION SELECT EMPLOYEE_ID FROM SALARIES WHERE EMPLOYEE_ID NOT IN (SELECT

Naver Blog

SQL 문제 15 - Rearrange Products Table LeetCode 1795

SQL 문제 15 - Rearrange Products Table LeetCode 1795 Rearrange Products Table 풀이 -- ORACLE SELECT * FROM PRODUCTS UNPIVOT ( PRICE FOR STORE IN ( STORE1 AS 'store1', STORE2 AS 'store2', STORE3 AS 'store3') ); -- MYSQL SELECT T.* FROM ( SELECT PRODUCT_ID , 'store1' as store , STORE1 AS PRICE FROM PRODUCTS WHERE STORE1 IS NOT NULL UNION ALL SELECT PRODUCT_ID , 'store2' as store , STORE2 AS PRICE FROM PRODUCTS WHERE STORE2 IS NOT NULL UNION ALL SELECT PRODUCT_ID , 'store3' as store , STORE3 AS PRICE F

Naver Blog

SQL 문제 16 - Tree Node LeetCode 608

SQL 문제 16 - Tree Node LeetCode 608 Tree Node 풀이 SELECT ID , CASE WHEN P_ID IS NULL THEN 'Root' WHEN ID NOT IN (SELECT P_ID FROM TREE WHERE P_ID IS NOT NULL) THEN 'Leaf' ELSE 'Inner' END AS TYPE FROM TREE; * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com

Naver Blog

SQL 문제 17 - Second Highest Salary LeetCode 176

SQL 문제 17 - Second Highest Salary LeetCode 176 Second Highest Salary 풀이 SELECT MAX(SALARY) SECONDHIGHESTSALARY FROM EMPLOYEE WHERE SALARY != ( SELECT MAX(SALARY) FROM EMPLOYEE ); * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com

Naver Blog

SQL 문제 18 - Customer Who Visited but Did Not Make Any Transactions LeetCode 1581

SQL 문제 18 - Customer Who Visited but Did Not Make Any Transactions LeetCode 1581 Customer Who Visited but Did Not Make Any Transactions 풀이 SELECT CUSTOMER_ID , COUNT(VISIT_ID) COUNT_NO_TRANS FROM VISITS WHERE VISIT_ID NOT IN (SELECT VISIT_ID FROM TRANSACTIONS) GROUP BY CUSTOMER_ID; - transaction_id가 없을 경우, 2번 이상 방문했을 경우이므로, Visits 테이블에서 Transactions 테이블의 visit_id를 제외한 나머지를 카운트 하면 된다. * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get

Naver Blog

SQL 문제 19 - Article Views I LeetCode 1148

SQL 문제 19 - Article Views I LeetCode 1148 Article Views I 풀이 SELECT DISTINCT(AUTHOR_ID) AS ID FROM VIEWS WHERE AUTHOR_ID = VIEWER_ID ORDER BY ID; - 문제에서 author_id 와 view_id는 동일 인물이라고한다. 그리고 문제 출력값도 동일인물을 출력하는 것을 보고 해당 풀이를 작성했다. * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com

Naver Blog

SQL 문제 20 - Rising Temperature LeetCode 608

SQL 문제 20 - Rising Temperature LeetCode 608 Rising Temperature 풀이 -- ORACLE SELECT T.ID FROM WEATHER T WHERE T.TEMPERATURE > (SELECT T2.TEMPERATURE FROM WEATHER T2 WHERE T2.RECORDDATE = T.RECORDDATE - 1 ) -- MYSQL SELECT T.ID FROM WEATHER T WHERE T.TEMPERATURE > (SELECT T2.TEMPERATURE FROM WEATHER T2 WHERE T2.RECORDDATE = DATE_SUB(T.RECORDDATE,INTERVAL 1 DAY) ) -- MSSQL SELECT T.ID FROM WEATHER T WHERE T.TEMPERATURE > (SELECT T2.TEMPERATURE FROM WEATHER T2 WHERE T2.RECORDDATE = DATEADD(DAY,-1,T.

Naver Blog

SQL 문제 21 - Sales Person LeetCode 607

SQL 문제 21 - Sales Person LeetCode 607 Sales Person 풀이 SELECT S.NAME FROM SALESPERSON S WHERE S.SALES_ID NOT IN ( SELECT O.SALES_ID FROM ORDERS O INNER JOIN COMPANY C ON O.COM_ID = C.COM_ID AND C.NAME = 'RED' ); * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com

Naver Blog

SQL 문제 22 - User Activity for the Past 30 Days I LeetCode 1141

SQL 문제 22 - User Activity for the Past 30 Days I LeetCode 1141 User Activity for the Past 30 Days I 풀이 -- ORACLE SELECT TO_CHAR(ACTIVITY_DATE,'YYYY-MM-DD') AS DAY , COUNT(DISTINCT USER_ID) AS ACTIVE_USERS FROM ACTIVITY WHERE ACTIVITY_DATE < '2019-07-27' AND TO_DATE('2019-07-27','YYYY-MM-DD') - ACTIVITY_DATE < 30 GROUP BY ACTIVITY_DATE -- MYSQL SELECT ACTIVITY_DATE AS DAY , COUNT(DISTINCT USER_ID) AS ACTIVE_USERS FROM ACTIVITY WHERE ACTIVITY_DATE < '2019-07-27' AND DATEDIFF('2019-07-27',ACTIVITY_

Naver Blog

SQL 문제 23 - Daily Leads and Partners LeetCode 1693

SQL 문제 23 - Daily Leads and Partners LeetCode 1693 Daily Leads and Partners 풀이 -- ORACLE SELECT TO_CHAR(DATE_ID,'YYYY-MM-DD') AS DATE_ID , MAKE_NAME , COUNT(DISTINCT LEAD_ID) AS UNIQUE_LEADS , COUNT(DISTINCT PARTNER_ID) AS UNIQUE_PARTNERS FROM DAILYSALES GROUP BY DATE_ID, MAKE_NAME; -- MYSQL, MSSQL SELECT DATE_ID , MAKE_NAME , COUNT(DISTINCT LEAD_ID) AS UNIQUE_LEADS , COUNT(DISTINCT PARTNER_ID) AS UNIQUE_PARTNERS FROM DAILYSALES GROUP BY DATE_ID, MAKE_NAME; * 출처 Level up your coding skills and q

Naver Blog

SQL 문제 24 - Find Followers Count LeetCode 1729

SQL 문제 24 - Find Followers Count LeetCode 1729 Find Followers Count 풀이 SELECT USER_ID , COUNT(FOLLOWER_ID ) AS FOLLOWERS_COUNT FROM FOLLOWERS GROUP BY USER_ID ORDER BY USER_ID ASC; * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com

Naver Blog

SQL 문제 25 - Customer Placing the Largest Number of Orders LeetCode 586

SQL 문제 25 - Customer Placing the Largest Number of Orders LeetCode 586 Customer Placing the Largest Number of Orders 풀이 -- ORACLE SELECT T.CUSTOMER_NUMBER FROM ( SELECT CUSTOMER_NUMBER FROM ORDERS GROUP BY CUSTOMER_NUMBER ORDER BY COUNT(1) DESC ) T WHERE ROWNUM = 1; -- MYSQL SELECT CUSTOMER_NUMBER FROM ORDERS GROUP BY CUSTOMER_NUMBER ORDER BY COUNT(1) DESC LIMIT 1; -- MSSQL SELECT TOP 1 CUSTOMER_NUMBER FROM ORDERS GROUP BY CUSTOMER_NUMBER ORDER BY COUNT(1) DESC; * 출처 Level up your coding skills

Naver Blog

SQL 문제 26 - Game Play Analysis I LeetCode 511

SQL 문제 26 - Game Play Analysis I LeetCode 511 Game Play Analysis I 풀이 -- ORACLE SELECT PLAYER_ID , TO_CHAR(MIN(EVENT_DATE),'YYYY-MM-DD') AS FIRST_LOGIN FROM ACTIVITY GROUP BY PLAYER_ID; -- MYSQL SELECT PLAYER_ID , MIN(EVENT_DATE) AS FIRST_LOGIN FROM ACTIVITY GROUP BY PLAYER_ID; -- MSSQL SELECT PLAYER_ID , CONVERT(CHAR(10),MIN(EVENT_DATE),120) AS FIRST_LOGIN FROM ACTIVITY GROUP BY PLAYER_ID; * 출처 Level up your coding skills and quickly land a job. This is the best place to expand your knowledge a

1 2 3 4 5 6 7 8 9 10