오늘 알고리즘 코드카타를 하면서 새롭게 배운것들에 대해 써보고자 한다.
오늘 SQL은 DATETIME에서 DATE로 형 변환 하는것이었고,
알고리즘은 하샤드 수를 구현하는 것이었다.
먼저 알고리즘부터 보자면,
class Solution {
public boolean solution(int x) {
boolean answer = true;
int real_x = x;
int temp = 0;
while(x > 0) {
temp += x % 10;
x /= 10;
}
System.out.print(real_x+"의 모든 자릿수의 합은 "+temp+"입니다.");
if (real_x % temp == 0) {
System.out.println(x+"는 "+temp +"로 나누어 떨어지므로 "+x+"는 하샤드 수입니다.");
} else {
System.out.println(x+"는 "+temp +"로 나누어 떨어지지 않으므로 "+x+"는 하샤드 수가 아닙니다.");
answer = false;
}
return answer;
}
}
이렇게 구현했는데, 우선 answer을 통해 하샤드 수인지, 아닌지를 판별한다.
while절을 통해 자릿수를 나누고 자릿수 총합을 구하고 temp에 저장한다.
그리고 if절을 사용하여 하샤드 수인지 아닌지를 판별하고 아닐때 answer을 변경한다.
SQL문제는 DATETIME을 DATE형식으로 바꾸어 출력하는 것이었는데, 해당 방법을 몰라 구글링해보았다.
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID
DATE_FORMAT(컬럼, 출력할 형식)으로 출력할 수 있었다.

다른 출력형식은 위와 같이 조절 할 수 있었다.
코드카타가 끝나고, 팀플 코드 피드백을 받았다.
객체지향에 맞게 메소드 파일 분리
subject id 자동으로 늘어나도록.
subject_type_mandatory enum으로 쓰기
enrollsubject->addsubject
0, 100보다 min, max로 선언해놓고 쓰기
위와 같이 피드백을 받았고, 피드백 받은 대로 수강생 등록 파트를 나누어 클래스를 만들었다.
승범님이 클래스 나누는 데 어려움을 겪어 같이 도와주었고, GIT 브랜치와 메인이 어떻게 돌아가는지에 대해 물어보셔서 같이 고치며 알려드렸었다.
자세한 내용은 내일 코드카타에 적도록 하겠다.