본문 바로가기

전체 글5

Javascript 2차원 배열 선언, 초기화 하기 javascript로 알고리즘 문제를 풀다 보면 2차원 배열을 사용해야 하는경우가 종종 있는데 javascript로 2차원 배열을 선언하고 초기화 하는 3가지 방법을 알아보겠습니다. 1. for문 사용 가장 쉽게 생각나는 for문을 이용하는 방법입니다. function getArray1(r, c, value) { const result = new Array(r); for (let i = 0; i < r; i++) { result[i] = new Array(c).fill(value); } return result; } 2. new Array, fill, map 사용 array의 생성자, array 메서드 fill과 map을 이용하는 방법입니다. function getArray2(r, c, value) { .. 2022. 10. 6.
[React Native] 0.70버전 custom font 적용하기 (react-native-cli) 이번 글에서는 react native 현재 최신 버전인 0.70.1 버전에서 custom font 적용하는 방법을 포스팅하려고 합니다.우선 프로젝트를 생성하고 App.js 파일을 수정합니다.npx react-native init AwesomeProjectimport React from 'react';import {StyleSheet, Text, View} from 'react-native';const App = () => { return ( hello world! );};const styles = StyleSheet.create({ view: { display: 'flex', alignItems: 'center', justifyContent: 'center',.. 2022. 9. 28.
Javascript로 큐 Queue 구현하기 서론 큐는 선입선출인 자료구조로 원소를 넣고(enqueue) 빼는(dequeue) 동작을 O(1)의 시간복잡도로 수행할 수 있습니다. javascript의 Array 자료구조를 사용하면 큐에 원소를 넣고 빼는 동작을 수행할 수 있습니다. push 메서드를 통해 원소를 맨 뒤에 넣을 수 있고 shift 메서드를 통해 맨 앞의 원소를 뺄 수 있습니다. 하지만 shift 메서드는 O(1)의 시간복잡도로 수행되지 않습니다. (이유를 자세히 찾아보지는 않았지만 맨 앞의 원소를 뺀 후에 나머지 원소들을 한칸씩 땡겨오는 작업이 필요해서 라고 추측됩니다.) 그래서 큐가 필요한 알고리즘 문제를 풀 때 Array를 사용하면 시간초과가 나거나 오래걸리는 것을 볼 수 있습니다. 배열에 10만개의 원소를 넣고 빼는 간단한 테스.. 2022. 9. 28.
[백준 2096] 내려가기- Java 문제 링크 : https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 풀이 다이나믹 프로그래밍으로 구현하였다. map[r][c] : (r, c)의 값 max[r][c] : (r, c)를 선택했을 때 max값 min[r][c] : (r, c)를 선택했을 때 min값 ex) max[r][1] = max(max[r-1][0], max[r-1][1], max[r-2][1]) + map[r][1] import java.util.*; import java.io.*; publi.. 2021. 6. 15.
[백준 1525] 퍼즐- Java 문제 링크 : https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net 풀이 BFS를 사용한 완전탐색 방법으로 구현하였다. 현재의 퍼즐모양, 빈 칸의 위치, 이동 횟수를 저장하기 위해 Info 클래스를 만들었다. 탐색을 하다가 이전에 나왔던 퍼즐모양은 다시 만들 필요가 없기 때문에 방문 체크를 해야한다. 방문 체크를 위해 Map 자료구조를 사용했고 key값으로는 퍼즐을 Integer로 바꾼 것을 사용했다. 1 0 3 4 2 5 7 8 6 -> 687524301 = 1 * 10^0 + 0 * 10^1 + 3 * 10^2 + 4 * .. 2021. 5. 17.