분류 전체보기 53

[백준/Java] 9095 1, 2, 3 더하기* (feat. 브루트포스/완전탐색)

문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. # 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. # 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 이전 포스팅에서 다이나믹 프로그래밍을 사용해서 해결했는데, 스터디를 진행하면서 브루트 포스(재귀)로 푸는 방법을 습득하게 되어서 그 방식에 대해서도 따로 정리해두려 한..

Study/algorithm 2021.10.12

[백준/Java] 11723 집합 (feat. 비트마스크)

문제 비어있는 공집합 S가 주어졌을 떄, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20) all: S를 {1, 2, ..., 20} 으로 바꾼다. empty: S를 공집합으로 바꾼다. # 입력 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하..

Study/algorithm 2021.10.12

[React Native] React Native Paper

리액트 네이티브 앱에서 사용할 수 있는 유용한 UI 컴포넌트 라이브러리들 중에서, 현재 진행 중인 프로젝트에서 사용되는 React Native Paper 에 대해서 짧막하게 정리하는 시간을 가지려 한다. 설명에 들어가기에 앞서 다양한 컴포넌트 라이브러리들 중 현 트랜드를 잘 반영하여 보여주는 이미지를 가져왔다. 위 통계 자료에서 볼 수 있듯이 근 1년간 React Native Paper 는 꾸준한 상승세를 보여왔다. 리액트 네이티브를 위한 디자인 라이브러리로 공식 문서도 잘 정리되어있고, 사용자의 수도 많아서 사용에 무리는 없을 듯 하다. React Native Paper 본격적으로 알아보자. 이는 Material Design 가이드 라인을 따르는 크로스 플랫폼 UI 컴포넌트 라이브러리다. 번들 크기를 ..

Project/softsphere 2021.10.08

[백준/Java/DP] 9095 1, 2, 3 더하기

문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. # 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. # 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 이 문제 또한 "다이나믹 프로그래밍" 기법을 사용한다. 다이나믹 프로그래밍 문제는 다음과 같은 문제 해결 루틴을 적용하면 된다. 테이블 정의하기 점화식 찾기 초기값 정..

Study/algorithm 2021.10.06

[백준/Java/DP] 11726 2xn 타일링 (feat. 다이나믹 프로그래밍)

문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. # 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) # 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 이 문제는 "다이나믹 프로그래밍" 기법을 사용하여 해결할 수 있다. 다이나믹 프로그래밍이란, 큰 문제를 작은 문제로 나누어 푸는 문제를 일컫는 것으로 쉽게 말해 답을 재활용하는 기법이다. 성립되기 위한 두가지 조건은 다음과 같다. Overlapping Subproblem 큰 문제를 작은 문제로 나누었을 때, 작은 단위로 나누어진 문제들은 같은 정답의 형태가 되어야 한다. Optimal Substruction 작은 부분에서 구한 최적의 답..

Study/algorithm 2021.10.06

[백준/Java] 9613 GCD 합 (feat. 유클리드 호제법)

문제 양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오. # 입력 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진다. 입력으로 주어지는 수는 1,000,000을 넘지 않는다. # 출력 각 테스트 케이스마다 가능한 모든 쌍의 GCD의 합을 출력한다. 문제에서 말하는 GCD란? Greatest Common Divisor, 즉 최대공약수를 말한다. 그리고 여기서 새롭게 알게 된 알고리즘 "유클리드 호제법" 에 대해 소개하려 한다. 유클리드 호제법은, 주어진 두 수 사이에 존재하는 최대공약수 (GCD)..

Study/algorithm 2021.10.06

[백준/Java] 1676 팩토리얼 0의 개수*

문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. # 입력 첫째 줄에 N이 주어진다. (0 = 5) { cnt += n / 5; n /= 5; } return cnt; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println(countZero(Integer.parseInt(br.readLine()))); } } © 참고 https://www.acmicpc.net/problem/1676 https://st-lab.tistory.com/1..

Study/algorithm 2021.10.06

[React Native] WebView 동작 흐름 이해하기

React Native 코드 분석을 본격적으로 시작하면서 처음 마주한 WebView 에 대해서 조사하면서 배워간 내용들에 대해 정리해려 한다 . . 🐱‍🏍 우선 WebView 자체가 ReactNative 에서 제공하는 것이 아니라, react-native-webview 패키지에서 제공된다 ! 하나씩 차근차근 알아보자 WebView 란? 이미 존재하는 웹 페이지를 앱으로 옮겨 보여주는 것 WebView 설치하기 WebView 를 사용하기 위해서는 WebView 를 import 해주어야 한다. 기존에는 React Native core 에 있었지만, React Natvie 가 core 에서 빼버렸기에 따로 설치를 해주어야 한다. 프로젝트 디렉토리 내에서 아래 두 명령어를 실행시켜주면 제대로 설치된다. $ np..

Project/softsphere 2021.10.03

[!React Native] Chocolatey 설치 (feat. sudo / locate32 사용법)

이전 글에서 다룬 네트워크 오류 해결을 위해 삽질한 과정 중 하나 cmd 창에 명령어를 치면서 Window 상에서는 내 뜻대로 동작하지 않는 것을 뒤늦게서야 알아채고 설치한 choco 🍫 에 대한 기록! 패키지를 설치 / 관리하는 툴을 운영체제별로 정리하면 Mac : Homebrew Ubuntu : apt-get CentOS : yum 윈도우는 위와 같은 역할로 choco 가 존재한다! choco 를 알기 전까지는 아래와 같은 오류를 반복해 마주쳤다. /* cmd */ 'sudo'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. /* powershell */ sudo : 'sudo' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인..

Project/softsphere 2021.10.01

[!React Native] net::ERR_CONNECTION_REFUSED 오류 파헤치기

리액트 네이티브 프로젝트 중 마주한 위대한 오류에 대한 글이기에 검은 로고로 준비해보았다 . . 보여져야 하는 페이지가 보이지 않는 원인이 리액트 자체의 문제인줄 알고 명령어들과 삽질했던 시간들에 대한 기록 . . 😈 장장 이틀 동안 내 눈앞에 보였던 오류 (이틀이라 하니 짧아보이지만 정말 이천년같이 길었다) localhost:PORT/net::ERR_CONNECTION_REFUSED WebView 내에 넣어둔 url 에 접속 시에 접속이 거부된다는 메시지! 필자의 경우 해결할 수 있던 방법은 아니지만 다른 이들이 리액트 네이티브 자체의 문제라면, 해당 오류를 마주했을 때 대처할 수 있는 방법들에 대해 정리하려 한다. 1. 'npm start' 해당 명령어를 VSCode 내 default shell (/..

Project/softsphere 2021.09.30