본문 바로가기

분류 전체보기77

[PS / 백준] 12904. A와 B https://www.acmicpc.net/problem/12904  풀이S가 T가 될 수 있는지를 따지지 않고 T가 S가 될 수 있는지를 따지면 되는 문제였다.T가 S가 될 수 있는지를 따지면 경우가 딱 두가지로 나뉜다. (i) T가 A로 끝남 => T의 맨 뒤에 있는 A를 떼면된다.(ii) T가 B로 끝남 => T의 맨 뒤에 있는 B를 떼고 문자열을 뒤집는다. 위 두 경우의 연산을 T와 S의 길이가 동일해질 때까지 반복해주면 된다. 오랜만에 StringBuilder를 써보니까 메소드들이 잘 기억나지가 않았다.delete(시작인덱스, 끝인덱스), reverse(), charAt() 정도는 꼭 기억해두자전체 코드import java.io.BufferedReader;import java.io.InputSt.. 2024. 11. 8.
[SQL / 프로그래머스] JOIN 문제 모음 https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 우선 5월에 만들어진 상품들의 총 주문 개수를 구해야한다고 생각했습니다.해당 쿼리는 아래와 같습니다.SELECT PRODUCT_ID, SUM(AMOUNT)FROM FOOD_ORDERWHERE PRODUCE_DATE >= '2022-05-01' AND PRODUCE_DATE  그리고 저 AMOUNT의 합과 가격을 곱해주면 된다고 생각해서 JOIN을 활용해서 정답쿼리를 썼습니다. SELECT FP.PRODUCT_ID AS PRODUCT_ID, F.. 2024. 11. 7.
[SQL / 프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr WHERE 절에 서브 쿼리를 써서 해결했습니다.  1. 가장 리뷰를 많이 쓴 회원 아이디 찾기REST_REVIEW 테이블에서 가장 리뷰를 많이 작성한 회원을 찾아줍니다.해당 쿼리는 아래와 같습니다. SELECT MEMBER_IDFROM REST_REVIEWGROUP BY MEMBER_IDORDER BY COUNT(*) DESC LIMIT 1;  2. 가장 리뷰를 많이 쓴 회원의 리뷰 내용 출력위에서.. 2024. 10. 18.
객체 지향 설계 5원칙 - SOLID SRP - 단일 책임 원칙⭐️ 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다즉 하나의 클래스는 하나의 역할만 해야한다는 의미이다.하나의 클래스가 너무 많은 역할을 맡고 있을 때 객체지향에서는 '나쁜 냄새가 나는 코드'라고 부른다.SRP가 잘 지켜지지 않은 설계의 예시를 보자.✏️ EX 1)사람 클래스가 있고, 이 사람 클래스에 의존하는 여러가지 클래스들(애인, 부모님, 회사 등)이 존재한다고 하자.이 사람 클래스 안에 여러 가지 역할에 해당하는 메소드를 모두 넣는 경우가 SRP가 잘 지켜지지 않은 설계이다. 하나의 클래스가 여러 역할을 하고 있기 때문이다.아래와 같이 역할을 나누어 클래스를 여러 개로 분리한다면 SRP를 잘 지킨 더 좋은 설계가 된다.✏️ EX 2)더 예시를 들어보자. 만약 .. 2024. 10. 14.
한화 시스템 Beyond SW 7기 22주차 회고 진짜 오랜만에 회고 쓴다..이번주는 진짜 엄청 고민이 많았던 것 같다.왜냐면 면접, 코테 일정이 좀 잡혔는데 지금하고 있는 프로젝트랑 면접 준비, 코테 준비 중에 어떤 것에 집중해야할지 계속 못정하고 갈팡질팡했었다.뭔가 코테, 면접 기회가 주어졌는데 그 전날에도 공부안하고 프젝하고 있으면 최선을 다하지 않는거 같아서 찜찜하고.. 프젝이랑 코테 둘다 조금씩조금씩 해볼려고 했는데 내 예상보다 시간이 많이 들어가서 생각대로 잘 안됐다.예를 들면 '오후 7시부터 9시까지 두시간만 면접 준비하고, 9시부터 11시까진 코테 준비해야지~' 이렇게 생각했는데 면접 준비가 내 예상보다 오래걸려서 그냥 그날 계속 면접 준비만 하다 잔다든가 계속 그런식이었다.그래서 프젝할 시간은 점점 없어지고 결국 학원에 있는 8시간 말고.. 2024. 10. 12.
일급 컬렉션(First Class Collection)에 대해 약 두달전 프로젝트를 하며 아래와 같은 복잡한 정렬 코드를 구현한 적이 있었습니다. // 액션 아이템 모두 뽑아오기 List idList = doneRetrospects.stream().map(Retrospect::getId).toList(); List actionItemList = actionItemRepository.findAllByRetrospectIdIn(idList).stream() .sorted((a, b) -> { if(a.getIsPinned() && b.getIsPinned() && a.getActionItemStatus().equals(b.g.. 2024. 10. 9.