일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- type assertion
- zustand
- useLayoutEffect
- helm-chart
- Recoil
- 주니어개발자
- 좋은 PR
- AJIT
- JavaScript
- Render Queue
- useCallback
- 명시적 타입 변환
- 프로세스
- CS
- 타입 단언
- 암묵적 타입 변환
- Compound Component
- 클라이언트 상태 관리 라이브러리
- Headless 컴포넌트
- linux 배포판
- jotai
- Microtask Queue
- prettier-plugin-tailwindcss
- Sparkplug
- TypeScript
- docker
- Custom Hook
- Redux Toolkit
- react
- task queue
- Today
- Total
목록혼자 공부,정리하는 알고리즘 (8)
구리
[문제] https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr [풀이] 문제를 봤을 때 일단 2가지가 필요하다고 생각했다. id는 고정적이나 닉네임은 변경 가능성이 있기에 key값 중복허용이 불가한 Map을 이용하여 id,닉네임 저장하기 채팅방 입장/퇴장 기록을 저장하는데 몇명이 얼마나 들어왔다 나갈지 모르지 길이가 고정적인 배열이 아닌 List 생성 (입장,퇴장 & id 저장) 그리고 닉네임이 변경될 수 있는 경..
[문제] https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr [풀이] 보자마자 든 생각은 일단 i개의 갯수만큼 문자열을 잘라 현재 문자열과 전 문자열을 비교하여 압축하여 풀어야 하고 i는 1부터 주어진 문자열 s 길이 / 2 까지 가능하다는 것이었다. 만약 문자열 길이가 7이라면 3까지는 쪼개서 비교가 가능하지만 4개씩 쪼개서 비교할 수가 없다는 것이다. 문자열은 substring()으로 나눠서 전 문자열..
[문제] https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr [설명] 각 배열의 숫자를 이용해 target 으로 결과값을 만들 수 있는 식의 개수를 구하는 방법으로 숫자들 사이에는 +,- 기호만 사용할 수 있다. 만약 a,b,c,d,e 라는 숫자가 있을 때 식으로 만들 수 있는 모든 경우의 수는 32다. (2의 5제곱) 모든 경우의 수를 구해서 해당 식의 결과..
[문제] https://programmers.co.kr/learn/courses/30/lessons/12911?language=java 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr [나의 풀이] class Solution { public int solution(int n) { int answer = 0; String binaryN = Integer.toBinaryString(n); int next = n; while(true){ String binaryNextN = Inte..
[문제] 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 입력 출력 "try hello world" "TrY HeLlO WoRlD" 입출력 예 설명 "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY..
// 재귀함수 이용한 최대 공약수 public static int gcd(int a, int b){ if(a%b == 0){ return b; } return gcd(b, a%b); } // 최소 공배수 public static int lcm(int a, int b){ return a*b / gcd(a,b); }
[문제] https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net [제출 답안] 첫번째로는 삽입 정렬을 사용하여 제출하였지만 시간 초과로 실패하였다... 자바 8 기준으로 시간은 3초, 메모리는 512MB의 제한이 있다. import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner s = new Scanner(System.in); int n = s.nextInt();..
[문제] https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net [제출 답안] 버블 정렬을 이용해 코드를 제출하였다. 케이스 수는 최대 1000개의 수기에 버블정렬도 가능했던 것 같지만 케이스 수가 더 많았다면.. 아마 시간 초과가 떴을 수도 있을 듯 하다. 다른 정렬 방법도 같이 참고하는 것이 좋을 듯 하다. package com.bjy.pracitce; import java.util.Scanner; public class Main { public stati..