[LeetCode/MySQL]607. Sales Person
·
코딩테스트/LeetCode
문제Sales PersonRED라는 회사와 거래하지 않은 Sales Person의 이름을 출력하는 문제였다.문제 풀이SELECT name FROM SalesPersonWHERE sales_id NOT IN( SELECT sales_id FROM Orders JOIN Company ON Orders.com_id=Company.com_id WHERE Company.name="RED");이 문제의 핵심은 Orders와 Customer 테이블을 조인하여 RED 회사와 거래한 sales_id를 찾고 해당 sales_id에 해당하지 않는 SalesPerson의 이름을 출력하는 것이다.서브쿼리에서는 Orders 테이블과 Customer 테이블을 cust_id를 기준으로 조인한 뒤 comp..
[LeetCode/MySQL]577. Employee Bonus
·
코딩테스트/LeetCode
문제Employee Bonus직원 이름과 보너스 금액을 보너스가 없거나 1000보다 작은 경우에만 출력하는 문제였다.문제 풀이SELECT e.name, b.bonusFROM Employee eLEFT JOIN Bonus bON e.empId=b.empIdWHERE bonusLEFT JOIN을 사용하여 Employee 테이블에 있는 모든 직원을 포함시키고 해당 직원과 일치하는 Bonus 테이블의 데이터를 연결했다. 만약 보너스가 없다면 bonus는 NULL로 반환된다.LEFT JOIN은 Employee 테이블에 있는 모든 행을 포함하려고 하지만 WHERE 절에서 조건을 적용하면 bonus가 NULL인 경우는 제외되므로 bonus가 NULL인 경우도 조건에 포함시켜줘야 한다.
[백준/JAVA]11653번 소인수분해
·
코딩테스트/백준
문제https://www.acmicpc.net/problem/11653자연수 N이 주어질 때, 소인수분해 결과를 오름차순으로 출력하는 문제였다.문제 풀이import java.io.*;public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N=Integer.parseInt(br.readLine()); while(N!=1){ for(int i=2;i
[백준/JAVA]2581번 소수
·
코딩테스트/백준
문제https://www.acmicpc.net/problem/2581M부터 N까지 자연수 중에서 소수인 수들의 합과 최솟값을 구하는 문제였다.문제 풀이1. 내가 생각한 풀이내가 생각한 방법은 이해하기 쉽고 로직이 명확하지만 숫자가 커질수록 반복 횟수가 매우 많아져 속도가 느려진다는 단점이 있다.import java.io.*;public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int M=Integer.parseInt(br.readLine()); int ..
[백준/JAVA]1978번 소수 찾기
·
코딩테스트/백준
문제https://www.acmicpc.net/problem/1978주어진 수들 중에서 소수가 몇 개인지 개수만 세는 문제였다.문제 풀이1. 처음 생각한 풀이import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int N=Integer.parseInt(br.readLine()); StringTokenizer st=new StringTokenizer(br.readLine()," "); int result=0; ..
[백준/JAVA]9506번 약수들의 합
·
코딩테스트/백준
문제https://www.acmicpc.net/problem/9506어떤 수 n이 완전수인지 판단하는 문제였다. 완전수란 자기 자신을 제외한 약수의 합이 자기 자신과 같은 수이다.문제 풀이처음에는 N의 약수를 N 크기의 배열에 저장했지만 N이 커질수록 불필요한 메모리 낭비가 발생했다. 실제로 약수의 개수는 N보다 훨씬 적기 때문에 배열은 비효율적이다. 이를 개선하기 위해 동적으로 크기를 조절할 수 있는 ArrayList를 사용해 문제를 해결했다.1. 배열import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[]..