끄적끄적 코딩
article thumbnail
[Java] 백준 17404번 RGB거리 2
알고리즘 2023. 6. 27. 01:50

다이나믹 프로그래밍 문제입니다. 직선에 N개의 집이 설치되어 있습니다. 양 옆의 집과 다른 색으로 칠할 때 최소비용을 찾아야합니다. 맨 왼쪽집과 맨 오른쪽 집도 같으면 안됩니다. 맨 왼쪽과 맨 오른쪽이 달라야하므로 DP에 최소값을 채워나가면 최적의 값을 찾을 수 없습니다. 그래서 3가지로 나눠서 DP값을 채워나갑니다. 1. 빨강으로 출발한 경우 2. 파랑으로 출발한 경우 3. 노랑으로 출발한 경우 마지막까지 계산 한 후 가장 작은 값을 출력해주었습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java..

article thumbnail
[Java] 백준 9080번 PC방 요금
알고리즘 2023. 6. 23. 17:12

시뮬레이션 문제입니다 PC방 요금을 최소한으로 냈을 때 금액을 출력해야합니다. 2가지 방법이 있습니다. 1. 1시간에 1000원 지불 2. 22:00 ~ 08:00 5000원 지불 10시~3시의 경우 남은시간이 5시간 이상이면 2번을 실행하고 그 외에는 전부 1번으로 진행해서 계산해주었습니다. 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 { public static void m..

article thumbnail
[Java] 백준 16432번 떡장수와 호랑이
알고리즘 2023. 6. 23. 03:29

N일 동안 전날과 다른 떡을 줄 수 있는지 찾는 문제입니다. 단순히 전날과 다른 떡을 주면 되므로 아래 두 경우는 같다고 볼 수있습니다. 1. 1 - 2 (1일에 1번떡, 2일에 2번떡) 2. 3 - 2 (1일에 3번떡, 2일에 2번떡) DFS로 모든 경우의 수를 확인해주었습니다. 중복된 과정이 많이 생기므로 방문배열을 만들어서 X일에 A떡을 주었다는 것을 기록합니다. 동일하게 X일에 A떡을 준 경우 이미 탐색했으므로 탐색하지 않습니다. 최종적으로 N일 동안 다 주었을때 준 떡을 순서대로 출력해주었습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.O..

article thumbnail
[Java] 백준 17088번 등차수열 변환
알고리즘 2023. 6. 22. 17:16

수열이 주어질때 규칙에 따라 등차수열로 변화시킬 수 있는지 찾는 문제입니다. 등차수열은 수열의 수의 앞뒤의 차가 전부 같은 수열을 말합니다. 수열이 주어지고 각 수에 1을 빼거나 1을 더할 수 있습니다. 가능한 경우 1. 현재 수 1 빼기 2. 현재 수 그대로 사용 3. 현재 수 1 더하기 위의 3가지 경우를 모두 DFS로 탐색하였습니다. 그리고 이전의 값과 차가 동일하면 계속 DFS로 탐색합니다. 가능한 경우들이 여러개가 나오는데 최소의 연산을 한 경우를 출력해주었습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter;..

article thumbnail
[React] 컴포넌트 스타일링
React 2023. 6. 22. 06:46

전체적인 정의 CSS - 제일 기본 방식 Sass - 자주 사용되는 css 전처리기 CSS module - 클래스명 중복 방지를 위한 기술, css를 모듈화 한다고 생각 style-components - 스타일을 js파일에 내장하는 방식 가장 흔한 방식, 일반 CSS 소규모 프로젝트에 적합 가장 중요한 것은 CSS 클래스를 중복되지 않게 만드는 것방법 2. CSS selector을 활용 방법 1. 클래스를 특별 규칙을 사용하여 지정 이름 짓는 규칙 React 프로젝트 내에 자동 생성된 App.css이다. 클래스 명을 컴포넌트명-클래스 형태로 짓는다. 이와 비슷한 방법 중에 BEM 네이밍 방식이 있다. BEM 네이밍 방식 정의 : Block, Element, Modifier의 약자로, Block, Elem..

[React] Hooks
React 2023. 6. 22. 06:30

useState useState 는 함수 컴포넌트에서 가변적인 상태를 지닐 수 있게 해줍니다. 만약 함수 컴포넌트에서 상태를 관리해야 한다면 이 Hook을 사용하면 됩니다. useState 의 기본적인 구조 const [value, setValue] = useState(0); 코드를 보면 오른쪽의 useState 를 비구조화 할당으로 배열로 받아왔습니다. 배열과 같이 두개의 원소가 있습니다. 첫 번째 원소는 원소의 상태 값, 두 번째 원소는 상태를 설정하는 함수입니다. 물론 두 원소 모두 원하는데로 네이밍 할 수 있습니다. 쉽게 말해 첫번째 원소로 현재 상태 값을 참조하고, 두번째 원소로 상태 값을 수정한다고 보면 됩니다. 다음 오른쪽 useState 를 보면 파라미터로 초기 값인 0을 설정해준 것을 확..

article thumbnail
[React] 컴포넌트의 라이프사이클 메서드
React 2023. 6. 22. 06:25

모든 리액트 컴포넌트에는 라이프사이클(수명 주기)이 존재한다. 컴포넌트의 수명은 페이지에 렌더링되기 전인 준비 과정에서 시작하여 페이지에서 사라질 때 끝난다. 라이프 사이클 메서드가 사용되는 경우 컴포넌트를 처음으로 렌더링할 때 작업을 처리하고 싶은 경우 컴포넌트를 업데이트하기 전후 작업을 처리할 때 불필요한 업데이트를 방지하는 경우 등 라이프사이클 메서드는 클래스형 컴포넌트에서만 사용 가능하다. 함수 컴포넌트에는 이와 비슷한 작업을 처리할 수 있는 Hooks가 있다. 라이프사이클 메서드의 이해 라이프사이클 메서드의 종류는 총 9가지 Will 접두사가 붙은 메서드 : 어떤 작업을 작동하기 전에 실행되는 메서드 Did 접두사가 붙은 메서드 : 어떤 작업을 작동한 후에 실행되는 메서드 라이프사이클의 종류 마..

[React] 컴포넌트 반복
React 2023. 6. 22. 06:00

컴포넌트 반복이 필요한 이유 const IterationSample = () => { return ( 눈사람 얼음 눈 바람 ); }; 위와 같이 태그가 반복적으로 나타나는 것은 문제가 되지 않는 것 처럼 보이지만 코드가 더 복잡해진다면 코드양은 더 늘어나고 파일 용량도 쓸데없이 증가하고 보여 주어야 할 데이터가 유동적이라면 직접 내용을 바꿔 주는 것은 한계가 있기 때문에 저러한 코드로는 절대 관리하지 못합니다. 따라서 자바스크립트 배열의 map() 함수를 통해 반복적인 내용을 효율적으로 보여주고 관리해야 함. 자바스크립트 배열의 map() 함수 map 함수는 파라미터로 전달된 함수를 사용해서 배열 내 각 요소를 원하는 규칙에 따라 변환한 후 그 결과로 새로운 배열을 생성합니다. 문법 arr.map(cal..

검색 태그