일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- Intellij
- 자료형
- 서버오류
- 서버중단
- dfs
- 논리학
- github cli
- thymeleaf
- 코딩테스트
- LiveTemplate
- string
- JAVA기초
- Leetcode
- elasticbeanstalk
- 코테
- 큐
- springboot
- 자동완성
- 알고리즘
- 통신대란
- linux
- 데이터센터
- 명제
- Queue
- Java
- AWS
- OVH
- char[]
- github
- Today
- Total
목록Algorithm (9)
Midnight Coder's Lounge

요약 - 배열을 자르는 메서드에 .slice(-N), .splice(-N)처럼 음수 인덱스를 넣으면, 배열 맨 끝에서 N번째 항목을 가리키게 할 수 있다.- 하지만 N = 0이라면? 배열 맨 끝이 아니라 맨 처음을 가리키게 된다. .slice(-N) = .slice(-0) = .slice(0)이기 때문이다. 상세 JavaScript로 백준 18110번 문제 "solved.ac"를 풀고 있었습니다. 주어진 N의 15%에 해당하는 갯수만큼 배열에서 최댓값 / 최솟값을 각각 제외하고 나머지 수들에 대해 평균을 내는 문제입니다. 그렇기 때문에 입력받은 배열을 정렬하고, N의 15%에 해당하는 값(변수명 offset)만큼 배열의 앞뒤에서 slice하는 방식으로 문제를 풀고자 합니다. 따라서 다음과 같이 코..

요약 JavaScript 객체에는 기본적으로 ‘constructor’, ‘toString’ 등 특정한 key에 해당하는 값이 존재한다. 따라서 객체를 사용해서 문제를 푼 경우, 문자열 ‘constructor’, ‘toString’ 등이 포함된 히든 케이스를 만나면 틀린 답을 출력할 수 있다. const obj = {};console.log(obj['constructor']);console.log(obj['toString']); 출력 결과[Function: Object][Function: toString]// 선언만 하고 아직 아무 값도 넣지 않았는데, 이미 뭔가 들어있는 이유가 뭘까요? 상세 https://www.acmicpc.net/problem/25192 node.js로 백준 25192번 문제 ..

실버1 티어 DFS 문제인 단지번호붙이기 문제 풀이입니다.제법 많은 분들께서 제 문제 풀이를 조회해 주셔서, 블로그에 직접 문제 해설을 올리기로 마음먹었습니다. * 선수지식 : DFS, PriorityQueue 문제 링크 https://www.acmicpc.net/problem/2667 개요 "이차원 평면 위에 1로 표현된 '집'들을 상하좌우로 연결한 묶음을 '단지'라고 하겠습니다. 첫째 줄에 총 단지 수가 몇 개인지 출력해 주세요. 그 후 단지별로 들어 있는 집의 수를 오름차순 정렬해서 한 줄씩 출력해 주세요." 코드 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import..

스택 자료구조를 다루는 감이 떨어져 스택 문제를 복습했습니다. 풀고 나니 예상보다 티어가 높은 문제였네요. * 선수지식 : Stack, (List) 문제 링크 https://www.acmicpc.net/problem/2504 개요 "괄호의 짝이 맞는지 확인하고, 괄호의 쌍이 나타내는 값의 합계를 구하세요".- 괄호 '()'는 감싸고 있는 값들을 전부 합해서 2를 곱해줍니다. 괄호 안이 비었다면 2를 나타냅니다.- 괄호 '[]'는 감싸고 있는 값들을 전부 합해서 3을 곱해줍니다. 괄호 안이 비었다면 3을 나타냅니다.() = 2[] = 3([]) = 2 * 3 = 6()[] = 2 + 3[()[]] = 3 * (2 + 3) = 15[([])[]] = 3 * ( (2 * 3) + 3 ) = 27 이 규칙에..

이른 아침에 산책을 나가서 아침밥을 먹다가 심심해서 예전에 실패했던 백준 문제들을 둘러보았습니다. 실버3 문제 하나를 빠른 방법으로 풀게 되어서 공유하려고 합니다. 문제 링크https://www.acmicpc.net/problem/3273 개요"주어진 배열에서 서로 다른 원소 두 개의 합이 X가 되는 경우의 수를 구하시오". 알고리즘을 처음 배울 때 조합으로 접근했다가 어리둥절했던 문제입니다.'분명 배운 대로 했는데 왜 통과를 못하는 거지?'물론 이제는 순열, 조합과 같은 완전탐색보다 훨씬 빠른 알고리즘이 많다는 걸 깨달았으니더 빠른 풀이방법을 생각해 낼 줄 알아야겠죠. 조합으로 풀 경우시간 제한이 1초인 문제입니다. 배열의 크기는 최대 100,000으로 주어집니다.배열에서 2개의 원소를 찾기 위해..

정말 오랜만에 올리는 포스팅입니다. 백준 알고리즘 문제를 하나 풀어보도록 하겠습니다. 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 개요 골드 4 난이도 시뮬레이션 문제입니다. 골드 난이도라지만 복잡한 알고리즘 지식이 필요한 문제는 아닙니다. 이차원 배열과 큐 Queue 정도의 자료구조를 문제풀이에 응용할 줄 알고, 문제의 요구사항을 꼼꼼히 구현하는 능력이 있다면 풀 수 있는 문제였습니다. 코드 [제출 결과] [코드] import java.io.BufferedReader; import java.io.IOExcept..

https://atomicliquors.tistory.com/8 [Leetcode][Java] 투 포인터로 더욱 빠른 배열 연산을 수행해 보자(1) 투 포인터 알고리즘 : 배열을 효율적으로 탐색하기 위해, 동시에 두 개의 포인터를 사용하여 배열을 순회하는 알고리즘입니다. 별도의 정렬 알고리즘 없이 정렬된 배열을 얻을 수 있게 해 주거 atomicliquors.tistory.com 지난 시간에 이어서, Leetcode에 등록된 배열 문제의 투 포인터 알고리즘 솔루션을 알아보겠습니다. 167. Two Sum II - Input Array Is Sorted Given a 1-indexed array of integers numbers that is already sorted in non-decreasing o..

투 포인터 알고리즘 : 배열을 효율적으로 탐색하기 위해, 동시에 두 개의 포인터를 사용하여 배열을 순회하는 알고리즘입니다. 별도의 정렬 알고리즘 없이 정렬된 배열을 얻을 수 있게 해 주거나, 이중반복문으로 처리해야 할 문제를 반복문 하나로 처리하거나, 추가적인 배열 생성 없이 그대로 배열을 수정하는(in-place modification) 등등, 시간/공간복잡도를 줄여주는 유용한 접근법입니다. Leetcode에 등록된 실제 예제를 통해 투 포인터 알고리즘에 대해서 알아보겠습니다. 977.Squares of a Sorted Array Given an integer array nums sorted in non-decreasing order, return an array of the squares of eac..