[Level 2] JadenCase 문자열 만들기 - 12951
·
CS/Algorithm
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/12951) 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krJadenCase 문자열 만들기📝 문제 설명JadenCase란 모든 단어의 첫 문자는 대문자, 나머지 문자는 소문자로 쓰는 방식입니다.단, 첫 문자가 알파벳이 아닐 경우, 그 이후 나오는 알파벳은 소문자로 유지합니다.문자열 s가 주어질 때, 이를 JadenCase로 변환하여 반환하세요.📌 입력값문자열 s (길이 1 이상 200 이하)s는 알파벳, 숫자, 공백문자로 구성됨예시: "3people unFollowed me"✅ 출력값Jaden..
[level 2] 최솟값 만들기 - 12941
·
CS/Algorithm
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr최솟값 만들기 📝 문제 설명길이가 같은 배열 A, B 두 개가 있습니다. 각 배열은 자연수로 이루어져 있습니다.배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며,두 수를 곱한 값을 누적하여 더합니다.이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다.(단, 각 배열에서 같은 인덱스의 숫자는 한 번만 사용할 수 있습니다.)📌 입력값정수 배열 A (길이 n, 1 ≤ n ≤ 1,000, 각 원소는 자연수 ≤ 1,000)정수 배열 B (길이 n, 1 ≤ n ≤ 1,000, 각 원소는 자연수 ≤..
자료 구조 정리
·
CS
선형 자료구조요소가 일렬로 나열되어 있는 자료구조1. 연결 리스트 (LinkedList)데이터 요소를 연결된 노드로 표현하는 방식LinkedList는 동적으로 크기가 조절될 수 있으며, 데이터의 삽입과 삭제가 빠르게 이루어짐▫️노드(Node) : LinkedList의 기본 구성 요소로, 데이터와 다음 노드를 가리키는 링크(포인터)로 구성된다.▫️헤드(Head) : LinkedList의 첫 번째 노드를 가리키는 포인터입니다. LinkedList에서 데이터에 접근하기 위해서는 헤드부터 시작해야 한다.▫️데이터(Data) : 각 노드가 저장하는 실제 값 또는 객체이다.▫️링크(포인터/Pointer) : 노드들을 연결하는 역할을 한다. 각 노드는 다음 노드를 가리키는 링크를 가지고 있다. ▫️싱글 연결 리스트 ..
[level 2] 올바른 괄호 - 12909
·
CS/Algorithm
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/12909) 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 올바른 괄호📝 문제 설명문자열 s가 괄호 '(', ')'로만 이루어져 있을 때, 괄호가 올바르게 짝지어졌는지 확인하는 문제입니다.올바른 괄호란열린 괄호 '('는 닫힌 괄호 ')'로 정확히 닫혀야 한다.괄호의 순서와 짝이 맞아야 한다.📌 입력값문자열 s (길이: 1 이상 100,000 이하)'(', ')' 문자로만 구성됨✅ 출력값올바른 괄호면 true그렇지 않으면 false📚 제한사항입력 문자열의 길이는 최대 100,000 → 효율적..
[level 2] 최댓값과 최솟값 - 12939
·
CS/Algorithm
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/12939) 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 최댓값과 최솟값📝 문제 설명문자열 s에는 공백으로 구분된 정수들이 포함되어 있습니다.이 숫자들 중 최솟값과 최댓값을 찾아 "(최솟값) (최댓값)" 형태의 문자열로 반환하는 함수를 작성하세요.📌 입력값문자열 s (예: "1 2 3 4")✅ 출력값공백을 기준으로 구분된 "최솟값 최대값" 형태의 문자열📚 제한사항문자열 s에는 두 개 이상의 정수가 공백으로 구분되어 있습니다.모든 값은 정수형이며, 음수도 포함될 수 있습니다.🧠 문제 접근..
[Hakple] JPA N+1 문제와 좋아요 상태 조회 성능 최적화
·
Project/HakPle
게시판의 댓글을 불러오는 api -> 로그인 된 사용자이면 댓글에 좋아요 누른 상태인지 아닌지 여부 포함 해야함문제 1. N+1 쿼리List comments = board.getComments();위 코드 쓰면 JPA가게시판 한 번 조회댓글 10개면 댓글 10번 따로 쿼리 날림총 11번 쿼리 나감 (이게 바로 N+1 문제)✅ 해결 1. Fetch Join 써서 쿼리 1번으로 끝냄@Query("""SELECT c FROM Comment cJOIN FETCH c.userWHERE c.board.id = :boardId AND c.status = :statusORDER BY c.creationTime ASC""")List findWithUserByBoardIdAndStatus(Long boardId, Stat..
HTTP
·
CS/Network
HTTP/1.0기본적으로 한 연결당 하나의 요청을 처리하도록 설계→ RTT (패킷 왕복 시간)증가서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 함▪️RTT의 증가를 해결하기 위한 방법▫️이미지 스플리팅많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운로드받고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기 1. 이미지 병합 예시 (수평으로 붙이는 경우)[img1][img2][img3]...만약 각 이미지가 100x100px 이고, 왼쪽에서부터 img1, img2, img3 순서로 배치되었다면: 2. CSS 예시.sprite { background-image: url('sprite...
[JAVA] StringBuilder
·
JAVA
📌 StringBuilder란?Java에서 가변(mutable) 문자열을 만들기 위한 클래스String은 불변(immutable) → 문자열을 수정할 수 없고, 수정 시마다 새로운 객체가 생성됨StringBuilder는 내용을 수정 가능 → 문자열 결합이 자주 발생할 때 성능이 훨씬 좋음✨ 주요 메서드append(str)문자열 붙이기insert(index, str)특정 위치에 문자열 삽입delete(start, end)start부터 end 전까지 삭제reverse()문자열 뒤집기toString()최종 결과를 문자열(String)로 반환🆚 String vs StringBuilder 항목 String StringBuilder 변경 가능 여부불변 (immutable)가변 (mutable)속도느림 (새 객..
[level 1] 이상한 문자 만들기 - 12930
·
CS/Algorithm
(https://school.programmers.co.kr/learn/courses/30/lessons/12930?language=java) 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이상한 문자 만들기 📝 문제 설명문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있으며,각 단어에서 짝수 번째 알파벳은 대문자, 홀수 번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수 solution을 완성하세요.📌 입력값문자열 s: 한 개 이상의 단어로 이루어진 문자열 (영어 소문자와 공백으로만 구성)✅ 출력값각 단어의 짝수번째 문자는 대문자, 홀수번째 문자는 소문자로 ..
IP 주소
·
CS/Network
1. ARP컴퓨터와 컴퓨터 간의 통신은 IP 주소에서 ARP를 통해 MAC주소를 찾아 MAC 주소를 기반으로 통신ARP(Address Resolution Protocol)IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환RARP실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환호스트 A가 IP 주소 120.70.80.3에 데이터를 보내려 함A는 MAC 주소를 모름 → ARP 요청 브로드캐스트 전송네트워크에 있는 모든 장치가 이 요청을 수신IP 주소가 120.70.80.3인 장치(B)만 응답B는 자신의 MAC 주소를 포함해 유니캐스트로 ARP 응답 전송A는 응답 받은 MAC 주소를 ARP 테이블에 ..