끄적끄적 코딩
article thumbnail
[Java] 백준 9935번 문자열 폭발
알고리즘 2023. 6. 17. 02:51

문자열 문제입니다. 문자열과 폭발 문자열이 주어집니다. 문자열에 폭발 문자열과 같은 단어가 있다면 해당 문자를 지웁니다. 위의 방식을 반복하여 최종적으로 남는 문자열을 출력하는 문제입니다. 문자열의 모든 위치에서 폭발 문자열이 있는지 비교하게 된다면 O(N^2)의 시간이 걸리게 됩니다. 현재 인풋으로 받는 문자열의 최대 길이가 1,000,000 이므로 O(N^2)으로 풀게 된다면 시간초과가 발생하게 됩니다. 문자열을 차례대로 저장하고 마지막 글자가 폭발 문자열의 마지막 글자와 일치하다면 한 글자씩 비교하도록 하였습니다. 만약 모든 글자가 같다면 index를 폭발문자열 만큼 뒤로 이동해서 덮어씌우는 방식으로 문자를 입력해갔습니다. import java.io.BufferedReader; import java..

article thumbnail
[Java] 백준 1726번 로봇
알고리즘 2023. 6. 16. 18:09

BFS 문제입니다. 로봇이 정해진 규칙대로 움직일 수 있을 때 도착지까지 최소 몇번의 명령이 필요한지 구해야합니다. 한번의 명령으로 아래의 규칙 중 하나를 수행 할 수 있습니다. 규칙 1. 보고 있는 방향으로 1칸, 2칸, 3칸 전진 2. 왼쪽 90도, 오른쪽 90도 회전 방문 배열을 만듭니다. => visit[y좌표][x좌표][방향] BFS 탐색으로 시작위치에서 규칙을 통해서 가능한 이동을 합니다. 1. 1칸 전진 2. 2칸 전진 3. 3칸 전진 4. 왼쪽 90도 회전 5. 오른쪽 90도 회전) 만약 이동을 했을 때 좌표 밖이거나 벽인 경우와 이미 방문한 경우에 대해서 처리해줍니다. 목적지에 최초로 도착했을 때 카운트값을 결과값으로 출력해주었습니다. import java.io.BufferedReader..

article thumbnail
[React] 리덕스 미들웨어
React 2023. 5. 30. 04:40

리덕스 미들웨어 액션을 패치 했을 때 리듀서에서 이를 처리하기에 앞서 사전에 지정된 작업들을 실행합니다. 액션과 리듀서 사이의 중간자라고 볼 수 있습니다. 리듀서가 액션을 처리하기 전에 미들웨어가 할 수 있는 작업은 여러가지가 있습니다. - 전달받은 액션을 단순히 콘솔에 기록 - 전달받은 액션 정보를 기반으로 액션을 취소 - 다른 종류의 액션을 추가로 디스패치 *실제 미들웨어를 직접 만들어 사용할 일은 많지 않습니다. => 다른 개발자가 만들어 놓은 미들웨어를 사용하기 때문 const loggerMiddleware = (store) => (next) => (action) => {}; export default loggerMiddleware; 미들웨어 만들어 보기 // lib/loggerMiddleware..

article thumbnail
[React] 리액트 라우터
React 2023. 5. 2. 02:36

웹 애플리케이션에서 라우팅이라는 개념 요청한 URL에 따라 알맞은 페이지를 보여주는 것을 의미 라우팅 시스템 여러 페이지로 구성된 웹 애플리케이션을 만들 때 페이지 별로 컴포넌트들을 분리해서 프로젝트를 관리하기 위해 필요 리액트에서 라우트 시스템 구축 - 리액트 라우트 - Next.js - react-location - rakkas 리액트 라우트 (React Router) - 컴포넌트 기반으로 라우팅 시스템을 설정 할 수 있습니다. - 리액트의 라우팅 관련 라이브러리들 중에서 가장 오래됐고, 가장 많이 사용되고 있습니다. Next.js - 리액트 프로젝트의 프레임워크 - 리액트 프로젝트 설정 기능, 라우팅 시스템, 최적화, 다국어 시스템 지원, 서버 사이드 렌더링 등 다양한 기능 제공 - 라우팅 시스템은..

article thumbnail
Spring - REST(Representational State Transfer) API
Spring 2023. 5. 1. 00:42

OPEN API (Application Programming Interface) - OPEN API는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 Interface - naver, kakao등 포털 서비스 사이트나 통계청, 기상청, 우체국 등과 같은 관공서, 공공 데이터 포털(https://www.data.go.kr)이 가지고 있는 데이터를 외부 응용 프로그램에서 사용할 수 있도록 OPEN API를 제공하고 있다. - OPEN API와 함께 거론되는 기술이 REST이며, 대부분의 OPEN API는 REST방식으로 지원 REST(Representational State Transfer) - REST는 ‘Representational State Transfer’의 약어로 하나의 URI는 하나의 고유한..

article thumbnail
Spring - MyBatis
Spring 2023. 5. 1. 00:36

MyBatis 개요와 특징 MyBatis는 Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM Framework - https://blog.mybatis.org - MyBatis는 SQL을 별도의 파일로 분리해서 관리 - Object - SQL 사이의 parameter mapping 작업을 자동으로 해 줌 - MyBatis는 Hibernate나 JPA(Java Persistence API)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담이 없이, 개발자가 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함을 제거해 주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능. MyBatis 특징 쉬운 접근성과 코드의 간결함 - 가장 간단한 persistence ..

article thumbnail
[React] ToDo List 만들기
React 2023. 4. 25. 01:56

create-react-app을 사용해서 프로젝트를 생성합니다. npx create-react-app todo-app sass를 사용해서 스타일을 꾸며 주도록 하겠습니다. npm add sass classnames react-icons classnames는 조건부 스타일링을 좀 더 편하게 하기 위함 react-icons는 리액트에서 다양하고 예쁜 아이콘을 사용할 수 있는 라이브러리 => https://react-icons.netlify.com/ React Icons React Icons Include popular icons in your React projects easily with react-icons, which utilizes ES6 imports that allows you to include..

article thumbnail
Spring MVC(Model-View-Controller)
Spring 2023. 4. 20. 22:55

MVC(Model-View-Controller) Pattern Model - 어플리케이션 상태의 캡슐화 - 상태 쿼리에 대한 응답 - 어플리케이션의 기능 표현 - 변경을 view에 통지 View - 모델을 화면에 시각적으로 표현 - 모델에게 업데이트 요청 - 사용자의 입력을 컨트롤러에 전달 - 컨트롤러가 view를 선택하도록 허용 Conroller - 어플리케이션의 행위 정의 - 사용자 액션을 모델 업데이트와 mapping - 응답에 대한 view 선택 MVC(Model-View_Controller) Pattern - 어플리케이션의 확장을 위해 Model, View, Controller 세가지 영역으로 분리 - 컴포넌트의 변경이 다른 영역 컴포넌트에 영향을 미치지 않음(유지보수 용이) - 컴포넌트 간의 ..

검색 태그