분류 전체보기
-
백준 - 2146 [C++]문제 풀이/백준 2023. 7. 18. 23:10
이 문제는 bfs 를 이용해서 푸는 문제이다. 이 문제에서 핵심은 섬이 꼭 육지로만 이루어져 있지 않을 수 있다는 것이다. 겉면이 육지로 둘러싸이고 내부는 바다일 수 있는 것이다. 따라서 외곽을 찾아서 bfs 를 돌릴 때 내가 출발한 섬의 번호와 같은 육지에 도착하면 실패하도록 구현해야 한다. 두번째로 bfs2 에서 while 문 내부에서 리턴하지 못하고 모두 끝나고 리턴할 때의 리턴값을 잘 설정해야 한다. 나는 처음에 아무 생각 없이 -1로 놨었는데, 그렇게 하면 최소를 구하는 문제에서 -1이 정답으로 나오는 케이스가 발생할 수 있다. 그러므로 최소를 구하는 문제에서는 리턴값을 가장 크게, 최대를 구하는 문제에서는 리턴값을 가장 작게 설정해줘야 한다. #include #include #include #..
-
백준 - 9019 [C++]문제 풀이/백준 2023. 7. 18. 23:06
이 문제는 bfs 를 사용하는 문제이다. 처음에는 이 문제에서 DSLR 연산의 리턴값을 string을 이용해서 구현했으나, 그렇게 하면 시간 초과가 발생하였다. 그래서 정수를 리턴하도록 하여 최대한 연산의 수를 줄였고, 정답을 받을 수 있었다. #include #include #include #include #include using namespace std; int operD(int temp) { temp *= 2; temp %= 10000; return temp; } int operS(int temp) { if (temp == 0) { temp = 9999; } else { temp--; } return temp; } int operL(int temp) { int result = (temp % 100..
-
자바 강의 정리Java 2023. 7. 9. 00:05
## 너무 쉬운건 제외하고 헷갈릴 만한 부분만 추림 1장 - 자바 시작 - .java 파일 (소스 코드) -> .class 파일 (바이트 코드) - 컴파일 방식 - .class 파일 -> JVM 적재 - 인터프리터 방식 - JVM은 필요할 때 클래스 파일 로딩 -> 링크 과정이 없음 - JDK (Java Development Kit) : 개발에 필요한 자바 도구 모음 - JRE (Java Runtime Environment) : 자바 실행에 필요한 API 포함 - Java SE : 표준 배포판 - 데스크탑, 서버 응용 개발 플랫폼 - Java ME : 마이크로 배포판 - SE + 임베디드 개발에 필요한 API - Java EE : 기업용 배포판 - SE + 인터넷 기반 서버사이드 컴퓨팅 API 추가 2장..
-
프로그래머스 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 [MySQL]문제 풀이/프로그래머스 2023. 6. 23. 15:42
이 문제는 union 과 not in 을 이용해서 푼 문제이다. not in 이나 in 을 사용하려면 where 절에서 컬럼을 지정해야 한다는 것을 꼭 기억하자. (SELECT CAR_ID, '대여중' AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE DATE(START_DATE) = '2022-10-16') UNION (SELECT CAR_ID, '대여 가능' AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE CAR_ID NOT IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE DATE(START_DATE) = '2022-1..
-
프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 [MySQL]문제 풀이/프로그래머스 2023. 6. 23. 14:48
이 문제는 group by 를 이용하는 문제이다. 이 문제를 처음 풀때는 서브쿼리 없이 MAX 를 이용해서 SQL을 작성했는데, 이렇게 하면 MAX 는 해당 그룹, 즉 카테고리로 묶인 그룹에서 가격의 최댓값만을 알려줄뿐 해당 행까지 지정되지는 않아서 틀린 답으로 나오는 것 같았다. 그래서 카테고리로 묶은 그룹의 최댓값을 출력하는 서브쿼리를 작성하고, in 을 이용해서 해당 값을 포함하는 행을 전부 출력하면 정답이 나왔다. SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT WHERE PRICE IN (SELECT MAX(PRICE) AS MAX_PRICE FROM FOOD_PRODUCT WHERE CATEGORY = '과자' OR CA..
-
프로그래머스 - 동명 동물 수 찾기 [MySQL]문제 풀이/프로그래머스 2023. 6. 21. 23:55
이 문제는 group by 를 사용하는 간단한 문제이다. 나는 이 문제를 밑의 방식으로 풀었다. SELECT NAME, CNT FROM (SELECT NAME, COUNT(*) AS CNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME) AS TEMP WHERE CNT >= 2 ORDER BY NAME ASC; 그러나 다른 사람들의 풀이에는 having 절이 포함되어 서브쿼리를 사용하지 않았다. 서브쿼리를 사용한 이유는 where 절에서 cnt 를 인식하지 못해서였는데, having 절은 group by 이후의 상태에서 조건을 붙이는 절이라는 사실이 생각났다. 그리하여 다음과 같은 코드로 바꿀 수 있었다. SELECT NAME, COUNT(*) AS CNT..
-
프로그래머스 - 저자 별 카테고리 별 매출액 집계하기 [MySQL]문제 풀이/프로그래머스 2023. 6. 21. 23:16
이 문제는 group by 를 다중 컬럼을 이용해서 푸는 문제이다. 하나 헤맸던 건 SUM(SALES) * PRICE 로 TOTAL_SALES 를 계산해서 계속 틀린 답이 나왔는데, 이는 BOOK_ID 로 GROUP BY 를 한게 아니므로 완료된 그룹 안에서는 다른 BOOK_ID 가 충분히 존재할 수 있다. 그러므로 SUM(SALES * PRICE) 로 TOTAL_SALES 를 계산해야 제대로 된 값이 나온다. SELECT A.AUTHOR_ID, AUTHOR_NAME, CATEGORY, TOTAL_SALES FROM AUTHOR AS A INNER JOIN (SELECT AUTHOR_ID, CATEGORY, SUM(SALES * PRICE) AS TOTAL_SALES FROM BOOK AS B INNER..
-
프로그래머스 - 그룹별 조건에 맞는 식당 목록 출력하기 [MySQL]문제 풀이/프로그래머스 2023. 6. 21. 16:37
이 문제는 join과 where절 서브 쿼리를 이용해서 풀었다. where절 서브 쿼리를 사용할 때 주의할 점은 서브 쿼리가 반드시 컬럼 하나로만 이루어져야 한다는 것이다. 2개 이상의 컬럼을 select 하게 되면 오류가 발생한다. SELECT M.MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') as REVIEW_DATE FROM MEMBER_PROFILE AS M INNER JOIN REST_REVIEW AS R ON M.MEMBER_ID = R.MEMBER_ID WHERE M.MEMBER_ID = (SELECT MEMBER_ID FROM (SELECT COUNT(MEMBER_ID) AS CNT, MEMBER_ID FROM REST_RE..