본문 바로가기

백준45

3월에 태어난 여성 회원 목록 출력하기(DB) 문제 설명 입출력 예시 요약 생일이 3월인 여성 회원의 1) 아이디 2) 이름 3) 성별 4) 생년월일 출력 풀이 접근 방식 1. 생년월일 형식 바꾸기 → TO_CHAR(DATE_OF_BIRTH, 'YYYY-MM-DD') : '년-월-일' 형태로 변경 2. 3월에 태어난 회원 구하기 → SUBSTR(DATE_OF_BIRTH, 6, 2) : YYYY-MON-DD에서 MON 가져와서 비교 * SUBSTR()의 경우 포맷 변경이 없었기 때문에 달에 해당하는 부분이 VARCHAR(JAN, FEB, MAR 등) 형태 3. 나머지 조건 맞추기 → TLNO IS NOT NULL, GENDER = 'W' 쿼리문리뷰 -- 코드를 입력하세요 SELECT MEMBER_ID, MEMBER_NAME, GENDER, TO_CHA.. 2024. 3. 22.
숫자 문자열과 영단어(Lv.1) 문제 설명 입출력 예시 요약 문자를 숫자로 바꾸기 풀이 접근 방식 1. 문자를 숫자로 바꾸기 → replaceAll() 메소드를 통해 변환 코드리뷰 import java.util.*; class Solution { public int solution(String s) { // 숫자를 문자형태로 담은 배열 만들기 String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; for(int i = 0; i < arr.length; i++) { s = s.replaceAll(arr[i], String.valueOf(i));// repalceAll()을 통해 숫자로 변환 } int answ.. 2024. 3. 22.
비밀지도(Lv.1) 문제 설명 입출력 예시 요약 2진수 형태로 변환 후 합치기 풀이 접근 방식 1. 2진수 형태로 변환 → toBinaryString()을 통해 decimal to binary 변환 2. 정사각형 배열의 크기만큼 빈공간은 공백으로 채우기 → StringBuilder의 insert() 메소드를 통해 문자열에 문자 채우기 코드리뷰 import java.util.*; class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String s1 = ""; String s2 = ""; List list = new ArrayList(); for(int i = 0; i < arr1.length; i++) { s1 = Integer.toBinary.. 2024. 3. 22.
의상(Lv.2) 문제 설명 입출력 예시 요약 각 의상의 카테고리마다 하나씩 다르게 착용하는 경우의 수 구하기 풀이 접근 방식 1. 각 카테고리에 해당하는 아이템의 개수 구하기 → 카테고리(key) : 개수(value) map 만들기(아무것도 착용하지 않는 경우의 수 추가) 2. 최소 하나의 의상은 착용해야 함 → 모든 카테고리에서 아무것도 고르지 않는 경우 제외 코드리뷰 import java.util.*; class Solution { public int solution(String[][] clothes) { HashMap map = new HashMap(); for(int i = 0; i < clothes.length; i++) { map.put(clothes[i][1], map.getOrDefault(clothes[.. 2024. 3. 22.
캐시(Lv.2) 문제 설명 입출력 예시 요약 캐시에 저장된 문자열과 비교(대소문자 구분x)해서 있다면 hit 없다면 miss 방식은 LRU 풀이 접근 방식 1. 캐시 크기로 분기점 생성 → 캐시 사이즈가 0이라면 all miss 2. 캐시에 저장된 문자열과 비교 → equalsIgnoreCase()를 통해 대소문자 구분 없이 비교 3. hit의 경우(= 캐시에 존재한다면) → remove()와 add()로 LRU 방식 구현 코드리뷰 import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { List list = new ArrayList(); int answer = 0; boolean find; for(int i = 0.. 2024. 3. 22.
기능개발(Lv.2) 문제 설명 입출력 예시 요약 배포 순서는 정해져 있는 상태에서 기능 개발이 완료된 프로세스는 함께 배포 풀이 접근 방식 1. 기능개발까지 남은 일 수 계산 → 남은 일 수 : (100 - 진행현황) / 속도 2. 배포단계에 있는 프로세스의 남은 일수와 같거나 적은 프로세스는 함께 배포 → Queue 형식으로 데이터 조회 코드리뷰 import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { List remains = new ArrayList(); List answerList = new ArrayList(); for(int i = 0; i < progresses.length; i++) { int rema.. 2024. 3. 22.