728x90
데일리루틴 SQL
MySQL 조건에 맞는 사용자 정보 조회하기 정답입니다.
SELECT
U.USER_ID,
U.NICKNAME,
CONCAT(U.CITY, ' ', U.STREET_ADDRESS1, ' ', COALESCE(U.STREET_ADDRESS2, '')) AS 전체주소,
CONCAT(SUBSTR(U.TLNO, 1, 3), '-', SUBSTR(U.TLNO, 4, 4), '-', SUBSTR(U.TLNO, 8, 4)) AS 전화번호
FROM
USED_GOODS_USER U
JOIN
(SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3) B
ON
U.USER_ID = B.WRITER_ID
ORDER BY
U.USER_ID DESC;
- SELECT 문:
- 사용자 ID, 닉네임, 전체 주소, 포맷팅된 전화번호를 선택합니다.
- 전체 주소는 시 + 도로명 주소 + 상세 주소로 구성하며, 상세 주소가 없으면 빈칸 처리합니다.
- 전화번호는 xxx-xxxx-xxxx 형식으로 변환합니다.
- FROM 절:
- 사용자 정보를 담고 있는 USED_GOODS_USER 테이블에서 데이터를 가져옵니다.
- JOIN 절:
- USED_GOODS_BOARD 테이블에서 게시물을 3건 이상 등록한 사용자만 필터링합니다.
- 작성자 ID를 기준으로 두 테이블을 연결합니다.
- ORDER BY:
- 결과를 사용자 ID 기준으로 내림차순 정렬합니다.
데일리루틴 알고리즘
Java 카드 뭉치 정답입니다.
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
int one = 0;
int two = 0;
for(String g : goal) {
if(one < cards1.length && cards1[one].equals(g)) {
one++;
} else if(two < cards2.length && cards2[two].equals(g)) {
two++;
} else {
return "No";
}
}
return "Yes";
}
}
- int one = 0;와 int two = 0;
- 첫 번째와 두 번째 카드 뭉치에서 사용할 카드의 위치를 나타내는 인덱스를 초기화합니다.
- for(String g : goal)
- 목표 단어 배열(goal)을 순서대로 확인하기 위해 반복문을 실행합니다.
- if 조건문
- 현재 단어(g)가 첫 번째 카드 뭉치(cards1)에서 순서에 맞게 사용 가능한 경우, 해당 카드의 인덱스를 증가시킵니다.
- else if 조건문
- 현재 단어(g)가 두 번째 카드 뭉치(cards2)에서 사용 가능한 경우, 해당 카드의 인덱스를 증가시킵니다.
- else
- 두 카드 뭉치 모두에서 단어를 사용할 수 없으면 "No"를 반환합니다.
- return "Yes";
- 모든 단어를 올바르게 사용한 경우 "Yes"를 반환합니다.
728x90
반응형
LIST
'Sparta > 데일리루틴' 카테고리의 다른 글
TIL(Today I Learned)_데일리루틴_24.12.02.Mon (0) | 2024.12.02 |
---|---|
TIL(Today I Learned)_데일리루틴_24.12.01.Sun (0) | 2024.12.01 |
TIL(Today I Learned)_데일리루틴_24.11.29.Fri (0) | 2024.11.29 |
TIL(Today I Learned)_데일리루틴_24.11.28.Thu (0) | 2024.11.28 |
TIL(Today I Learned)_데일리루틴_24.11.27.Wed (0) | 2024.11.27 |