본문 바로가기

분류 전체보기47

[프로그래머스/Lv.2] 카펫 1) 정사각형 혹은 가로가 긴 직사각형 이기 때문에 두 변의 합은 brwon / 2 + 2 이다.2) yellow가 1 이상 이기 때문에 가로 및 세로의 길이는 3 이상이여야 한다.3) 가능한 가로 세로 경우의 수를 구해서 yellow의 격자의 수 와 비교하여 동일하면 return 한다. class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int widthAndHeight = brown / 2 + 2; for(int height = widthAndHeight - 3; height > 0; --height) { .. 2025. 2. 4.
[프로그래머스/Lv.2] 상품 별 오프라인 매출 구하기 SELECT T1.PRODUCT_CODE, SUM(T2.SALES_AMOUNT * T1.PRICE) as SALESFROM PRODUCT as T1LEFT JOIN OFFLINE_SALE as T2ON T1.PRODUCT_ID = T2.PRODUCT_IDgroup by T1.PRODUCT_CODEorder by SALES DESC, T1.PRODUCT_CODE ASC SUM 안에 테이블 별 컬럼을 가져와 * 연산을 수행한 누적값을 구할 수 있다. 2025. 2. 3.
[프로그래머스/Lv.1] 가장 가까운 같은 글자 1) 'a'~'z'알파벳의 앞 위치를 담아둘 checkBox[26] 배열을 사용한다.    ex: ( 'a'의 위치는 'a' - 'a' = 0, checkBox[0], 'b'의 위치는 checkBOx[1]가 된다. )2) 각 알파벳이 나왔을 때 해당 알파벳이 나온 인덱스 위치를 기록한다.3) 동일한 알파벳이 나왔을 때 해당 알파벳의 checkBox위치에서 값을 꺼내 '현재 인덱스 - 전 인덱스' 로 몇 칸 떨어져 있는지 구하고 현재 인덱스를 해당 알파벳의 checkBox위치에 넣어준다. 이후 반복.. class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; sho.. 2025. 1. 24.
[프로그래머스/Lv.2] 조건에 맞는 도서와 저자 리스트 출력하기 SELECT T1.BOOK_ID, T2.AUTHOR_NAME, DATE_FORMAT(T1.published_date, '%Y-%m-%d') as PUBLISHED_DATEfrom book as T1inner join author as T2on T1.author_id = T2.author_idwhere T1.category = '경제'order by T1.published_date asc 1) 동일한 저자ID를 key로 inner join 사용.2) book테이블의 category가 '경제'인 데이터 추출 후 published_date 기준 오름차순 정렬. 2025. 1. 24.
[프로그래머스/Lv.1] 시저 암호 1) 현재 문자에서 n만큼 이동한 값의 값이 소문자의 경우 'z' 보다, 대문자의 경우 'Z' 보다 큰경우를 고려한다.-> 대문자인 경우 예시: (word + n - 'A') % 26 + 'A'2) 공백인 경우는 그대로 공백으로 넣어준다.3) StringBuilder를 사용해 문자를 추가해준다.  class Solution { public String solution(String s, int n) { StringBuilder answer = new StringBuilder(); for(char word : s.toCharArray()) { if(word == ' ') { answer.append(" .. 2025. 1. 23.
[프로그래머스/Lv.1] 최소직사각형 1) 큰 수를 첫 인덱스 위치로 옮겨준다.2) 첫 인덱스에 있는 가장 큰값과 두번째 인덱스에 있는 가장 큰값을 구한다.3) 두 수를 곱한값이 가장 작은 직사각형 값이 된다.  class Solution { public int solution(int[][] sizes) { int answer = 0; int maxY = 0; int maxX = 0; for(int i = 0; i 2025. 1. 23.