프로그래머스 42888번 - 오픈채팅방 요구사항 1. 문제가 길기 때문에 본문의 사진을 참고하길 바랍니다. 요구사항 분석 및 풀이과정 1. 가장 까다로운 점은 기존의 유저가 닉네임을 바꿀 경우는 이미 출력된 기록의 닉네임을 바꿔줘야 한다는 점이다. 2. 하지만 이 문제에서는 약간의 특이점이 있는데, 실시간 처리가 아니라는 점이다. 닉네임 변경 사항을 모두 반영하고 출력할 기록들을 만들어내면 된다는 것이다. 예를 들어 유저 아이디가 "uid1234"라는 유저가 "Muzi"라는 닉네임으로 접속하고, 퇴장하고, 닉네임을 "Ryan"라고 바꾼다고 할 때 실시간으로 처리한다면 다음과 같을 것이다. 하지만 우리는 시간의 흐름대로 실시간으로 들어오는 요청(Enter, Leave, Change)을 처리하는 것이 아니라..
프로그래머스 12941번 - 최솟값 만들기 요구사항 1. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값의 합의 최솟값을 반환하라. 요구사항 분석 및 풀이과정 1. 사실상 이 문제는 직접 써보면서 규칙을 찾을 순 있지만, 증명을 위해서는 재배열 부등식이라는 것을 알아야 한다. 좋은 문제는 아니다. 소스코드 작성 import java.util.Arrays; import java.util.stream.IntStream; class Solution { public int solution(int[] A, int[] B) { Arrays.sort(A); Arrays.sort(B); return IntStream.range(0, A.length).map(i -> A[i] * B[A.length - i..
프로그래머스 12953번 - N개의 최소공배수 요구사항 1. n개의 수들의 최소공배수를 반환하라. 요구사항 분석 및 풀이과정 1. n개의 수들의 최소공배수는 수 2개씩 최소공배수를 구한 결과와 나머지 n-2개의 수, 총 n-1개 수들의 최소 공배수를 구하면 된다. [2, 3, 4]의 최소공배수는 2와 3의 최소공배수인 6과 4의 최소공배수인 24다. 최대공약수는 BigInteger.gcd 메서드를 사용할 수 있고, 최소공배수는 구한 최대공약수를 통해서 구할 수 있습니다. 소스코드 작성 import java.math.BigInteger; class Solution { private int gcd(int a, int b) { return BigInteger.valueOf(a).gcd(BigInteger.va..
프로그래머스 60058번 - 괄호 변환 요구사항 1. 문자열이 '('와 ')'로 이루어져있을 때 '('의 개수와 ')'의 개수가 같다면 균형잡힌 괄호 문자열이다. 2. 균형잡힌 괄호 문자열이면서 '('와 ')'의 괄호 짝도 모두 맞을 경우에는 올바른 괄호 문자열이다. 3. 주어진 방법대로 균형잡힌 문자열을 올바른 괄호 문자열로 바꾸어서 반환하라. 요구사항 분석 및 풀이과정 1. 균형잡힌 괄호 문자열인지 검사를 하는 방법은 '(' 문자가 나올 경우 +1, ')' 문자가 나올 경우 -1을 하여 결과가 0인지를 확인하면 된다. 2. 올바른 괄호 문자열인지 검사를 하는 방법 또한 1번과 동일하나 +1, -1을 한 결과가 음수가 되면 짝이 맞지 않는 시점이 발생했다는 것이므로 올바른 괄호 문자열이 될 수 없다는 ..
프로그래머스 12911번 - 다음 큰 숫자 요구사항 1. n의 다음 큰 숫자를 반환하라. 2. n의 다음 큰 숫자의 정의는 다음과 같다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 개수가 같다. 조건 3. n의 다음 큰 숫자는 조건1, 2를 만족하는 수 중 가장 작은 수 요구사항 분석 및 풀이과정 1. n의 다음 큰 숫자는 n보다 큰 자연수이므로 탐색의 범위는 n + 1부터이다. 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 개수가 같으므로, 각각 1의 개수를 구해서 비교한다. 3. n + 1부터 순차적으로 2번을 수행하여 처음으로 1의 개수가 같은 수가 조건 1, 2를 만족하는 수 중 가장 작은 수다. 팁 정수 n을 2..
- Total
- Today
- Yesterday
- 카카오
- 스택
- 회고
- dsu
- dp
- 연결리스트
- 정렬
- 비트연산
- k8s
- kotlin
- 우선순위큐
- Java
- sql
- set
- BFS
- 오늘의집
- 알고리즘
- 해쉬
- 문자열
- 스트림
- 쓰레드
- 코드 스니펫
- Uber
- 탐욕법
- dfs
- 코딩인터뷰
- 구현
- TDD
- JPA
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |