분류 전체보기 133

[프로그래머스] [PCCP 기출문제] 4번 / 수식 복원하기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/340210 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 개요주어진 수식에서 2~9진법 중 하나를 사용하고 있다는 전제하에, 수식의 진법을 판단하고 지워진 결괏값(X)을 올바르게 채워넣는 문제입니다. 모든 수식은 덧셈(+) 또는 뺄셈(-) 연산으로 이루어져 있으며, 정확한 결과를 도출하거나 불확실할 경우 ?로 표기해야 합니다. 접근 방법진법 검증을 위한 데이터 구조 설정2진법부터 9진법까지의 유효성을 확인하기 위해, 각 진법에서 해당 수식이 성립하는 횟수를 기록하는 배열(base)을 선언합..

[프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기도움말 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/340213 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요동영상 재생기를 구현하는 문제로, 사용자가 입력한 명령에 따라 동영상의 재생 위치를 조정하는 기능을 제공합니다. 동영상의 길이, 현재 재생 위치, 오프닝 구간의 시작과 끝 시각이 주어지며, 사용자는 "prev"와 "next" 명령을 통해 재생 위치를 조정할 수 있습니다. 오프닝 구간에 있을 경우, 자동으로 오프닝이 끝나는 위치로 이동해야 합니다. 최종적으로 모든 명령이 수행된 후의 재생 위치를 "mm:ss" 형식으로 반환해야 합..

[ODOQ] JPA의 N + 1

[One Day One Question]JPA의 N+1에 대해서 설명해주세요JPA의 N+1 문제는 데이터베이스에서 쿼리를 수행할 때 발생하는 성능 저하 문제입니다. 이 문제는 주로 연관된 엔티티를 조회할 때 발생하며, 기본적으로 N개의 엔티티를 조회할 때 추가로 N개의 쿼리가 발생하는 상황을 의미합니다. 예를 들어, 게시글과 댓글을 조회할 때, 게시글을 조회한 후 각 게시글마다 댓글을 조회하기 위해 추가 쿼리가 발생한다면 N + 1 문제가 발생한 것입니다. @Entitypublic class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @On..

cs/ODOQ 2024.11.25

[ODOQ] TCP와 UDP의 차이점

[One Day One Question]TCP와 UDP의 차이점을 설명해주세요 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷에서 데이터를 전송하기 위해 사용하는 프로토콜입니다. 두 프로토콜은 데이터 전송 방식과 특징에서 주요 차이점이 있습니다.1. 연결 기반 vs 비연결 기반TCP: 연결 기반 프로토콜로, 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정합니다. 이를 3-way handshake라고 합니다.UDP: 비연결 기반 프로토콜로, 연결 설정 없이 데이터를 전송합니다. 송신자는 데이터를 바로 전송하며 수신 여부를 확인하지 않습니다. 2. 신뢰성TCP: 신뢰성이 보장됩니다. 데이터의 손실, 중복, 순서가 어긋나는 경..

cs/ODOQ 2024.11.25

[프로그래머스] 문자열 나누기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 개요주어진 문자열 s를 특정 규칙에 따라 여러 부분 문자열로 분해하고, 분해된 문자열의 개수를 반환하는 문제입니다. 분해 규칙은 다음과 같습니다:첫 글자를 기준으로 두 종류의 문자(x, x가 아닌 다른 문자)의 등장 횟수를 비교합니다.두 종류의 문자 등장 횟수가 같아지는 순간 문자열을 분리합니다.분리 후 남은 문자열에 대해 같은 과정을 반복합니다.남은 문자열이 없다면 종료합니다.접근 방법초기화 및 설정첫 글자를 기준으로 문자 x를 설정..

[프로그래머스] 달리기 경주 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요얀의 달리기 경주에서 선수들이 추월하는 상황을 바탕으로 경주 종료 후 최종 순위를 구하는 문제입니다. 선수들이 초기 순위대로 주어지고, 해설진이 특정 선수를 호출하면 해당 선수가 바로 앞의 선수를 추월합니다. 이를 반복한 뒤, 최종적으로 모든 선수의 순위를 반환해야 합니다.접근 방법HashMap을 활용하여 간단하게 해결할 수 있는 문제입니다.코드import java.util.*;class Solution { public S..

유클리드 호제법 (최대 공약수, 최소 공배수)

유클리드 호제법은 두 수의 최대공약수(Greatest Common Divisor, GCD)를 계산하는 가장 효율적인 알고리즘입니다. 이를 활용하면 두 숫자의 최소공배수(Least Common Multiple, LCM)도 쉽게 구할 수 있습니다. 유클리드 호제법의 원리유클리드 호제법은 다음 성질을 이용합니다:두 수 A와 B의 최대공약수는, A와 B를 나눈 나머지(A%B)의 최대공약수와 같습니다.즉, GCD(A , B) = GCD(B , A%B)이 과정을 반복하여 나머지가 0이 되었을 때, 그 나누는 값이 최대공약수입니다.예시: A=24, B=3624%36=24, 따라서 GCD(24,36) = GCD(36,24)36%24=12, 따라서 GCD(36,24) = GCD(24,12)24%12=0, 따라서 GCD(..

cs/알고리즘 2024.11.24

[ODOQ] HTTP와 HTTPS의 차이점

[One Day One Question]HTTPS는 HTTP와 어떤 차이점이 있으며, HTTPS가 보안을 강화하는 원리는 무엇인가요?HTTP와 HTTPS의 차이점HTTP와 HTTPS는 인터넷에서 데이터를 주고받는 데 사용되는 프로토콜이지만, 보안 측면에서 큰 차이가 있습니다.1. HTTP (HyperText Transfer Protocol)데이터를 암호화하지 않고 평문(Plain Text)으로 전송합니다.네트워크 상에서 제3자가 데이터를 쉽게 읽거나 조작할 수 있습니다.기본적으로 포트 80번을 사용합니다.2. HTTPS (HyperText Transfer Protocol Secure)HTTP에 SSL/TLS(암호화 프로토콜)를 결합하여 데이터를 암호화하여 전송합니다.제3자가 데이터를 읽거나 변조하기 매우..

cs/ODOQ 2024.11.24

[프로그래머스] 멀쩡한 사각형 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/62048#  문제 개요주어진 문제는 가로 길이 W와 세로 길이 H인 직사각형 종이가 대각선으로 잘려, 두 개의 직각삼각형으로 나뉜 상태에서 시작합니다. 이 종이에서 1cm × 1cm 크기의 정사각형으로 잘라낼 수 있는 최대 개수를 구하는 것입니다. 대각선에 의해 사용 불가능한 정사각형들을 제외한 나머지 정사각형의 수를 계산하는 문제입니다. 접근 방법대각선이 지나가는 칸의 수는 직사각형의 가로(W)와 세로(H)를 고려하여 계산됩니다.대각선이 지나가는 격자 칸의 총 개수는, 다음과 같은 성질을 기반으로 계산됩니다 W+H−gcd(W,H) 왜 이렇게 계산할까?1. 대각선의 경로직사각형의 한 모서리에서 반..

[프로그래머스] 가장 큰 정사각형 찾기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요주어진 2차원 배열 board에서 1과 0으로 이루어진 가장 큰 정사각형의 넓이를 계산하는 문제입니다. 접근 방법이 문제는 동적 계획법(Dynamic Programming, DP)을 사용하여 효율적으로 해결할 수 있습니다. 1. DP 배열 초기화:입력 배열과 같은 크기의 DP 배열을 생성합니다. DP 배열의 각 요소는 해당 위치에서 끝나는 가장 큰 정사각형의 한 변의 길이를 저장합니다.2. 기본 조건 설정:배열의 첫 번째 행과 첫..