SELECT BOOK_ID, AUTHOR_NAME, PUBLISHED_DATE FROM BOOK, AUTHOR WHERE CATEGORY = '경제' GROUP BY AUTHOR_ID ORDER BY AUTHOR_ID
SELECT B.BOOK_ID, A.AUTHOR_NAME, B.PUBLISHED_DATE FROM BOOK B JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID WHERE CATEGORY = '경제' ORDER BY B.AUTHOR_ID
JOIN 조건 누락 : 테이블 간 연결조건이 누락되었음
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, ISNULL(FREEZER_YN) = 'N' FROM FOOD_WAREHOUSE
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID
ISNULL 문법 오용: ISNULL(FREEZER_YN) = 'N' 문법은 MySQL에서 FREEZER_YN이 NULL인지 여부를 0 또는 1로 반환하는 비교문입니다. NULL 값을 'N'으로 치환하라는 의도라면 IFNULL(FREEZER_YN, 'N') AS FREEZER_YN 또는 COALESCE(FREEZER_YN, 'N') AS FREEZER_YN을 써야 합니다.
WHERE 조건(경기도) 누락: 문제 조건 중 "경기도에 위치한" 창고만 조회하는 WHERE ADDRESS LIKE '경기도%' 조건이 빠져 있습니다.
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> map = new HashMap<>();
for(String p : participant) {
map.put(p, map.getOrDefault(p, 0)+1);
}
for(String c :completion ) {
map.put(c, map.get(c)-1);
}
for(String key : map.keySet()) {
if(map.get(key) != 0) {
return key;
}
}
return "";
}
}
1) HashMap 생성
2) 참가자(participant) 카운트 : 동명이인 있을 수 있으니 기존값에 +1 하는게 핵심
3) 완주자(completion) 차감
4) 완주하지 못한 선수 찾기 : map.keySet()을 돌며 값이 0이 아닌 사람 이름 찾아서 return
import java.util.HashMap;
class Solution {
public int[] solution(String s) {
int [] answer = new int [s.length()];
HashMap<Character, Integer> map = new HashMap<>();
for(int i=0;i<s.length();i++) {
char ch = s.charAt(i);
if(!map.containsKey(ch)) {
answer[i] = -1;
} else {
answer[i] =i- map.get(ch);
}
map.put(ch,i);
}
return answer;
}
}
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
HashMap<Character,Integer> map = new HashMap<>();
for(int i=0; i<s.length();i++){
char ch = s.charAt(i);
answer[i] = i-map.getOrDefault(ch,i+1);
map.put(ch,i);
}
return answer;
}
}