2024_09_12 Kata

SJ.CHO·2024년 9월 12일

알고리즘 Kata

67.

  • 답안 :
package answer;

public class Solution {
	public String solution(String s, String skip, int index) {
		String answer = "";
		StringBuffer sb = new StringBuffer();
		char[] carr = s.toCharArray();
		// 확인해야할 문자만큼 반복
		for (int i = 0; i < carr.length; i++) {
			// ASC 코드로 문자 변환
			int arrInt = carr[i];
			// 주어진 인덱스만큼 반복
			for (int j = 0; j < index; j++) {
				arrInt += 1;
				// z 를 넘겼을때 a로 순환
				if (arrInt > 122) {
					arrInt = 97;
				}
				// skip문자가 존재할경우 문자만큼 스킵
				while (skip.indexOf((char) arrInt) != -1) {
					arrInt += 1;
					// z 를 넘길시 a로 순환
					if (arrInt > 122) {
						arrInt = 97;
					}

				}
			}
			sb.append((char) arrInt);
		}
		answer = sb.toString();
		return answer;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Solution s = new Solution();
		String s1 = "yyyyy";
		String skip = "za";
		int index = 2;
		System.out.println(s.solution(s1, skip, index));
	}
}
  • 알고리즘 설명 : 주어진 문자열을 분해 후 ASCII 코드로 변환하여 계산. 주어진 INDEX만큼 반복하되 문자진행중 skip 문자열이 존재할경우 skip한 만큼 이동한다. 제한을 두어 z를 넘어갈시 a로 다시 순환 형태.

SQL Kata

71.

답안 :

SELECT date_format(SALES_DATE,'%Y-%m-%d')as 'SALES_DATE',PRODUCT_ID,USER_ID,SALES_AMOUNT
from ONLINE_SALE 
where date_format(SALES_DATE,'%Y-%m')='2022-03'

Union All

select date_format(SALES_DATE,'%Y-%m-%d')as 'SALES_DATE',PRODUCT_ID,NULL,SALES_AMOUNT
from OFFLINE_SALE
where date_format(SALES_DATE,'%Y-%m')='2022-03'
order by SALES_DATE, PRODUCT_ID, USER_ID

Union ALL: 2개의 쿼리문의 데이터를 합쳐서 출력, 중복문자열도 그대로 출력
Union : 중복된 문자열중 하나의 데이터만 출력

  • 각 쿼리의 컬럼 갯수및 명칭이 일치해야한다.
  • 두개의 쿼리문을 Union ALL 함수를 통해 출력하여 해결.

72.

답안 :

SELECT u1.TITLE,u1.BOARD_ID,u2.REPLY_ID,u2.WRITER_ID,u2.CONTENTS,date_format(u2.CREATED_DATE,'%Y-%m-%d') as 'CREATED_DATE'
from USED_GOODS_BOARD u1
inner join USED_GOODS_REPLY u2
on u1.BOARD_ID=u2.BOARD_ID
where date_format(u1.CREATED_DATE,'%Y-%m')='2022-10'
order by CREATED_DATE,1
  • 조인을 통해 두테이블의 데이터를 묶고 DATE 형태 편집 및 출력
profile
70살까지 개발하고싶은 개발자

0개의 댓글