끄적끄적 코딩
article thumbnail
[Java] 백준 2580번 스도쿠
알고리즘 2023. 7. 5. 01:10

스도쿠의 값이 입력으로 주어지고 결과값을 출력해내는 문제입니다. 비트마스킹을 사용해서 각 가로, 세로, 사각형 부분에 어떤 값이 더 들어올 수 있는지 체크하였습니다. 체크되어있는 값들만 브루트포스 방식으로 전부 시도해보았습니다. 모든 값들이 적절히 들어갔을 때 스도쿠의 상태를 출력해주었습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static int[][] map; ..

article thumbnail
[Java] 백준 9663번 N-Queen
알고리즘 2023. 7. 4. 02:06

브루트포스 문제입니다. 퀸을 서로가 공격 할 수 없게 놓을 수 있는 경우의 수를 구해야 합니다. 퀸은 직선과 대각선에 있으면 공격할 수 있으므로 퀸의 직선과 대각선에 다른 퀸이 존재하지 않게 두어야합니다. 비트를 사용해서 아래와 같이 처리했습니다. 1은 왼쪽 대각선 2는 직선 4는 오른쪽 대각선 비트 값을 확인하여 다음 줄에 놓을 수 있는지 체크합니다. 체크가 안 된 위치에 퀸을 두고 다음 줄을 확인합니다. 위의 과정을 반복하여 마지막 줄까지 퀸을 둘 수 있는 경우를 카운팅해서 출력해 주었습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.Output..

article thumbnail
[Java] 백준 1013번 Contact
알고리즘 2023. 7. 3. 22:18

문자열 문제입니다. (100+1+ | 01)+ 의 규칙을 가졌는지 확인하면 됩니다. 위의 규칙을 가졌을 경우 YES 가지지 않았을 경우 NO를 출력합니다. 단일 숫자는 해당 숫자가 존재하는지를 나타냅니다. 10 => 10이라는 숫자가 있어야함 1+ => 1이라는 숫자가 N개 존재 10+1 => 1과 1사이에 0이 N개 존재함 (1+ | 01)+ (1이 N개 있거나 0다음 1이 M개 있음)이 P개 있음 위와 같이 규칙이 존재합니다. 그렇다면 (100+1+ | 01)+ 의 경우에는 (100+1+ 또는 01+)가 N개 존재하는 경우 100+1+는 1 0 (0이 N개) (1이 M개) 있는 경우 01는 01이 있는 경우 if문을 잘 설정해서 위의 경우에 해당하는지 찾으면 됩니다. import java.io.Buf..

[React] 서버 사이드 렌더링
React 2023. 7. 3. 00:27

서버 사이드 렌더링의 이해 서버 사이드 렌더링 vs 클라이언트 사이드 렌더링 브러우저 렌더링이란? 서버로부터 요청해 받은 내용을 브라우저 화면(view)에 표시해주는 작업. 즉, 브라우저가 서버로부터 HTML, CSS, JavaScript 문서를 전달받아 브라우저 엔진이 각 문서를 해석해 브라우저 화면을 그려주는 것 클라이언트 사이드 렌더링(Client Side Rendering)이란? 클라이언트 사이드 렌더링은 클라이언트인 브라우저가 렌더링을 처리하는 방식. 즉, 서버에서 받은 데이터를 통해 클라이언트인 브라우저가 화면(View)을 그리는 주체가 되는 것 장점 네이티브 앱과 비슷한 빠른 인터렉션을 구현할 수 있음 View 렌더링을 브라우저에게 담당시킴으로서 서버 트래픽을 감소시키고, 사용자에게 더 빠른..

[React] 코드 스플리팅
React 2023. 7. 3. 00:26

리액트로 프로젝트를 생성하고 배포했을 시 웹팩이라는 도구가 별도의 설정없이 모든 자바스크립트 코드와 CSS 파일을 하나의 파일(main)로 합칩니다. 이 말은 여러 컴포넌트 중 하나의 컴포넌트만 보여진다고 해도 다른 컴포넌트도 자연스래 저장이 된다는 뜻입니다. 이는 파일의 크기를 키우고 로딩이 오래걸려 사용자 경험을 안좋게 할 뿐만 아니라 트래픽도 증가시킬 것 입니다. 이를 해결해 줄 수 있는 방법이 바로 코드 비동기 로딩입니다. 자바스크립트 함수 비동기 로딩 일반 자바스크립트 함수를 스플리팅해 보겠습니다. notify.js export default function notify() { alert('안녕하세요!'); } src/App.js //... function App() { const onClick..

article thumbnail
[Java] 백준 1253번 좋다
알고리즘 2023. 7. 3. 00:23

투포인터 문제입니다. N개의 수가 있을 때 좋은 수의 개수를 찾아야합니다. 좋은 수는 해당 수를 제외한 2개의 수의 합으로 만들어질 경우 좋은 수라고 합니다. 입력받은 수의 배열을 정렬해줍니다. for문을 통해서 차례대로 좋은수인지 체크합니다. 투포인터로 두 개의 합을 구하고 값이 클 경우 right -1, 값이 작을 경우 left + 1 을 해줍니다. 만약 두 개의 값이 같은 경우 찾는 수와 인덱스가 같은지 확인해주고 둘 다 다를 경우 좋은 수로 카운팅해줍니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; impor..

article thumbnail
[React] 리덕스를 사용하여 리액트 애플리케이션 상태 관리하기
React 2023. 7. 1. 03:47

작업환경 설정 리액트 프로젝트를 생성한다. redux와 react-redux 라이브러리를 설치한다. yarn add redux react-redux UI 준비하기 리액트에서 리덕스를 사용할 때 가장 많이 사용하는 패턴 → 프레젠테이셔널 컴포넌트와 컨테이너 컴포넌트를 분리하는 것이다. 프레젠테이셔널 컴포넌트 : 주로 상태 관리가 이루어지지 않고, props만 받아와서 화면에 UI만 보여주는 컴포넌트 컨테이너 컴포넌트 : 리덕스와 연동이 되어있는 컴포넌트 이러한 패턴이 필수는 아니지만, 이 패턴을 사용하면 코드의 재사용성도 높아지고, 관심사의 분리가 이루어져 편리하다. 2개의 컴포넌트를 만드는 실습을 진행 리덕스 관련 코드 작성하기 보통 actions, constants, reducers 각각의 폴더를 만들..

article thumbnail
[React] 리덕스 라이브러리
React 2023. 7. 1. 03:33

리덕스 가장 많이 사용되는 리액트 상태 관리 라이브러리 모든 state를 store라는 중앙 상태 저장소를 사용하여 저장하고 reducer 함수를 통해 수정. 컴포넌트의 상태 업데이트 관련 로직을 다른 파일로 분리하여 효율적으로 관리할 수 있게 해줌. 컴포넌트끼리 똑같은 상태를 공유해야 할 때도 다른 컴포넌트를 거치지 않고 손쉽게 상태 값을 전달하거나 업데이트 가능. 전역 상태를 관리할 때 효과적. Context API를 통해서도 똑같은 작업을 수행할 수 있지만 프로젝트 규모가 클 경우에는 리덕스를 사용하는 편이 좋음. (상태를 더욱 체계적으로 관리) 장점 1. props drilling 방지 - props drilling이란 컴포넌트가 특정값을 사용하기 위해 여러 상위 컴포넌트에서 props를 정의하고..

검색 태그