TIL(Today I Learned) 40

[MYSQL] DATETIME에서 DATE로 형 변환 (DATE_FORMAT)

안녕하세요!오늘은 DATE_FORMAT에 대해 알아보려고 합니다.   DATE_FORMATDATE 또는 DATETIME 형식의 값을 지정된 형식의 문자열로 변환하기 위해 사용합니다.(=사용자가 원하는 형태로 변경하는 것)사용 방법(대소문자 사용 주의!)DATE_FORMAT(datetime컬럼명, 포맷할 형태)포맷 형태 정리( ' - '로 구분 )포맷문자설명(예시)포맷문자설명(예시)포맷문자설명(예시)포맷문자설명(예시)%Y4자리 년도(2024) %y 2자리 년도(24)     %M월 영어 풀네임(August) %b 월 짧은 영어(Jan, Aug, ...)  %m 월 (01~12)  %c월 (1~12)(앞에 0이 없어진 버전!) %D일 영어(1st, 6th, 29th..)%d일 (01~31)%e일 (1~31)..

[Java/코딩테스트] 음양 더하기 ( + 지역변수에 대하여)

안녕하세요!오늘은 생각하면 되게 간단한 코딩테스트를 들고왔습니다..!   처음에는 true면 그냥 더하고, false면 음수로 봐꿔줘서 더하면 되겠구나? 라고 간단하게 생각했는데음수로 봐꿔주는 메서드가 있는건가? 문자열로 "-" 더해줄까?? 라고 생각을 깊게 하다보니 제대로 못풀고 있었습니다. 그러던 찰나에 "-1"을 곱하면 당연히 "음수"가 된다는 생각이 떠올랐습니다. 그리고 또 다른 난관에 부딪쳤는데,,그럼 어떻게 합쳐서 더하지..? 생각했습니다.(코딩을 막 배운 저라, 가끔씩 생각이 이상한쪽으로 깊게 생각하게 되더군요,,ㅎㅎ)  많은 생각과 고민을 한 만큼 오늘 코딩테스트는 한 번의 시도 끝에 통과했습니다!! 뭔가 생각한대로 한번에 통과하니깐 기분이 좋더라구요ㅎㅎ이제 저 코드를 더 간단하게 할 방법..

[MySQL/코딩테스트] NULL 처리하기(IFNULL, CASE, COALESCE 사용)

안녕하세요!오늘은 SQL 코딩테스트 문제를 들고왔습니다.  일단 저는 이 문제를 보고,  "replace"를 활용하여 문제를 풀으면 되겠는데?? 생각했습니다ㅎㅎ  당연히 통과할 줄 알았던 테스트였지만,,결과가 이상하게 나오더라구요..!그래서 replace에 대해 다시 찾아 본 결과,replace는 바꿀 값이 아무것도 없으면 "Null"을 치환한다고 합니다.생각해보니깐 문자열을 바꿔주는 함수인데, 애초에 아무것도 없는(null) 값을 바꾸려고 시도했던 부분이 스스로 너무 부끄러웠습니다ㅎㅎ  이제! Null 값을 치환해주는 방법에 대해 알아보겠습니다. 1.  IFNULL 함수컬럼의 데이터가 null인 경우 대체 값으로 치환할 수 있습니다.(null값을 치환하는 가장 간단한 방법!!)사용 방법IFNULL(컬럼..

[Java/코딩테스트] 서울에서 김서방 찾기

안녕하세요!오늘도 코딩테스트 문제를 가져왔습니다.   문제를 풀려고 생각해 보다 보니 answer라는 문자열 변수는 필요가 없을 것같아서 지운 상태에서 시도를 해보았다. 왜 index값이 0이 나왔지?라는 의문이 들었고,내가 짠 코드를 자세히 살펴보니 문자열을 비교할 때는 "=="연산자를 사용하면 안되는데 실수했다.왜냐면, "=="연산자는 "주소값"을 비교할 때 사용하기 때문이다. cf )      == 연산자객체의 주소를 비교하여 일치하는 확인할 때 사용        equals() 메서드객체의 내용을 비교하여 같은지 확인할 때 사용  오늘의 요약내용을 비교 하고 싶다 → equals()주소값을 비교 하고 싶다 → 비교 연산자

[Java/코딩테스트] 콜라츠 추측

안녕하세요!오늘도 코딩테스트 문제를 가져왔습니다.   일단, 마음가는대로 코드를 작성하고는 테스트 했습니다.ㅎㅎ 그랬더니, 테스트3이 통과되지 못하였고문제를 다시 보니 놓친 부분이 있었습니다.실행한 결괏값 488이 걸려서 곰곰히 생각해보니 지금 int정수형이지만입출력 예시 3번과 같이 큰 수들이 while문 돌면서 int의 최댓값을 넘어버릴것 같다는 생각이 들어long으로 형변환을 시켜주었습니다. 그리고, int answer가 선언되어있는데 굳이 count를 선언해서 복잡했던 코드들도 수정하였습니다.   오늘의 요약굳이 선언하여 코드를 복잡하게 만드는 코드가 없는지 한번 더 생각해 보자.

[Java/코딩테스트] 하샤드 수 판별

안녕하세요!오늘 풀어본 코딩테스트에 대해 다뤄보도록 하겠습니다.  일단, 이 문제를 풀기 전에 알아야 될 수학적 용어를 정리하고 풀어야 합니다.(입출력 예시 보고도 충분히 풀이가 가능하긴 하지만, 궁금하니깐..!!) 하샤드 수주어진 진법에서 그 수의 각 자릿수 숫자의 합으로 나누어 떨어지는 자연수를 말한다.예시 : 12는 각 자릿수 숫자의 합이 1+2=3이고, 12가 3으로 나누어떨어지므로 12는 10진법에서 하샤드 수다. 그러나 16은 1+6=7이고, 16이 7로 나누어떨어지지 않으므로 16은 10진법에서 하샤드 수가 아니다. (출처 : 나무위키)  문제 푼 순서1.  10으로 나누어 나온 숫자들을 더하는 식에 집중하다보니, if문에서 실수를 하였다.2. if문을 고쳤더니, 왜 다 통과가 안돼지? 생각..

[Java/코딩테스트] 정수 내림차순으로 배치하기

안녕하세요!오늘은 되게 간단해보이는데 생각보다 간단하지 않았던 코딩테스트를 정리해보려고 합니다.   이 문제를 보자마자 문자열 →  배열에 넣고 → 배열을 돌려가면서 값 비교? 할까??문자열 → substring으로 하나씩 값 비교? 어떻게 풀어야하지? 위에처럼 생각하다가 구글링의 도움을 받고 밑에 방법처럼 풀어보았습니다.도움이 많이 되서 정리해봅니다. 1. long 타입을 String 타입으로 변환해줍니다. :  118372 → "118372"  2. String타입으로 변환된 값을 split메서드를 활용하여 문자열을 잘라서 배열에 넣어줍니다. : "118372" → ["1", "1", "8", "3", "7", "2"]    cf ) split() 메서드문자열을 매개변수(파라미터)로 받아서 해당 매개..

[Java] 정수형 → 문자열 / 문자열 → 정수형 변환 정리

안녕하세요!오늘은 제가 개인적으로 너무 헷갈렸던 부분에 대해 정리해 보도록 하겠습니다. 정수형(int, long형)  →  문자열방법1. Integer.toString(int값) & Long.toString(long값) 문자열로 바꾸고자 하는 값을 위에 나와있는 이미지처럼 형변환 시켜주면 됩니다!! 방법2. String.valueOf(int값) & String.valueOf(long값)문자열로 바꾸고자 하는 값을 위에 나와있는 이미지처럼 형변환 시켜주면 됩니다!! 방법3. 정수형값 + ""  ( = 문자열을 더해서 문자열로 바꾸는 방법)문자열은 다른 형과 더하면 "문자열"로만 출력되는 점을 이용했습니다. 문자열  → 정수형(int, long형)방법1. Integer.parseInt(String값) & L..

[Java/코딩테스트] 약수의 합

안녕하세요!오늘 푼 코딩테스트에 대해 작성해보도록 하겠습니다.    일단 이 문제를 풀려면,약수에 대해 알아야되는데요. 약수란어떤 수를 나누어 떨어지게 하는 수(= 나머지가 없다는 것!!) 나머지가 없다는 것에 바로 if 조건문에 " %" 연산자를 사용하고for문으로 약수를 모두 더하면 되겠구나 생각해서 풀었습니다.  통과한 창 보면 괜스레 기분이 좋네요ㅎㅎ   오늘의 요약코딩테스트는 생각보다 단순, 간단하게 생각해야 될 때도 있다.

[MYSQL] Limit문(= 상위 n개의 레코드 구하기)

안녕하세요!오늘은 SQL문제를 풀다가 발견한 "limit"구문에 대해 알아보겠습니다. Limit 문상위 n개의 레코드만 가져오고 싶을 때 사용합니다. (= 몇번째 행부터 ~ 몇번째 행까지도 출력 가능!!)SQL문의 가장 마지막에 적습니다. (= where로 검색한 후 order by로 정렬한 뒤 최종적으로 처리됨)만약, 테이블(컬럼)에 1개의 행만 있다면, 1 보다 큰 수로 지정하더라도 1개의 행만 출력됩니다.사용방법 : Limit 가져오고 싶은 행의 개수    밑에 문제를 예시로 들어서 설명해보자면, 위의 '문제2' 그림과 같이 출력이 되야 정답입니다.  그러면 일단 제가 위의 문제를 푼 순서는 다음과 같습니다.1. NAME 테이블만 출력 됐으니깐 SELECT절에는 NAME 테이블만 불러와야겠구나2. ..