분류 전체보기

    [BJ] 백준 16954 움직이는 미로 탈출 (JAVA)

    [BJ] 백준 16954 움직이는 미로 탈출 (JAVA)

    문제 https://www.acmicpc.net/problem/16954 풀이 방법 가장 왼쪽 하단에서 가장 오른쪽 상단으로이동하면 되는 문제이다. 대신에 맵에는 벽이 존재하고 벽이 아래로 이동하는 조건이 걸려있다. 풀이 방법은 BFS로 풀이했다. 우선 이동 가능한 좌표들을 선언해주고(제자리 포함), 이동 가능한 구역으로 이동후 queue에 넣어준다. 그리고 방문배열을 체크해줘야하는데 제자리에 있는 경우도 있기 때문에 3차원 배열로 만들어서 마지막은 방향으로 방문 배열을 생성해줬다. 그리고 캐릭터 이동 -> 벽 이동이기 때문에 같은 횟수? 번째? 이동인 경우에는 한 번에 처리해주고 그 다음에 벽을 이동해줬다. 제출 코드 import java.io.*; import java.util.*; public cl..

    [React+TS] useNavigate props 전달과 useLocation으로 props 받기/ useLocation unknown 타입

    [React+TS] useNavigate props 전달과 useLocation으로 props 받기/ useLocation unknown 타입

    useNavigate React와 TS를 사용해서 프로젝트를 진행하고 있다. 클릭없이 페이지를 이동할 일이 생겨서 당연하게 useHistory를 사용했는데 띠용.... 이게 무슨일이야 해서 찾아봤더니 리액트 v6부터는 useHistory 대신에 useNavigate을 사용하라고 한다. React Router | Upgrading from v5 Declarative routing for React apps at any scale reactrouter.com 공식문서를 보면 useHistory를 사용했을 때랑 비교하면서 사용법이 잘 나와있다. 컴포넌트로도 사용할 수 있는 것 같다. useNavigate를 사용하면 .push 나 .go와 같은 함수가 필요없이 그냥 인자값에 따라서 알아서 함수가 적용되는것 같았..

    [React+TS+StyledComponent] 사이드바 만들기 + 외부 클릭시 닫히는 기능

    [React+TS+StyledComponent] 사이드바 만들기 + 외부 클릭시 닫히는 기능

    시작하기 햄버거 버튼을 누르면 사이드 메뉴가 나오고, 사이드 메뉴 내부에 있는 x 표시나 사이드메뉴 외부를 누르면 사이드메뉴가 닫히는 기능을 구현한다. 버튼 누르면 사이드메뉴가 나오기 버튼을 누르면 사이드 메뉴가 나오게 하는 것은 간단하다. 우선 헤더와 사이드메뉴 이렇게 두 개의 컴포넌트를 준비한다. 그리고 햄버거 버튼에 클릭 이벤트를 걸어주고, 나는 useState 변수를 사용해서 구현했다. Header.tsx function Header() { const [isOpen, setIsOpen] = useState(false); const toggleSide = () => { setIsOpen(true); }; return ( ); } 1. 사이드 메뉴 컴포넌트를 Header안에 같이 넣어줬다. 파라미터로..

    [BJ] 백준 11047 동전 0 (JAVA)

    [BJ] 백준 11047 동전 0 (JAVA)

    문제 https://www.acmicpc.net/problem/11047 풀이 방법 대표적인 그리디 알고리즘 문제이다. 동전의 단위가 있고, 금액이 있을 때 금액을 만들 수 있는 동전의 최소 개수를 구하면 된다. 순서는 정렬을 하고 단위가 큰 순서대로 금액에서 차감하면 되는데 입력값이 오름차순으로 주어진다고 했으니까 따로 정렬하지 않고 뒤에서부터 금액을 차감해주는 식으로 구현했다. 그리고 몫이 없으면 점점 단위가 내려가고 동전이 0이 되는 경우 for문을 벗어날 수 있게 해줬다. 제출 코드 import java.io.*; public class BOJ_11047_동전0 { public static void main(String[] args) throws IOException { BufferedReader..

    [Spring] 인프런 스프링 입문 강의 정리 #5

    [Spring] 인프런 스프링 입문 강의 정리 #5

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 controller 패키지 안에 HomeController 클래스를 만들어준다. 그리고 안에는 다음과 같이 작성해준다. package hello.hellospring.controller; import org.springframework.stereotype.Controller..

    [Spring] 인프런 스프링 입문 강의 정리 #4

    [Spring] 인프런 스프링 입문 강의 정리 #4

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 스프링 빈과 의존관계 컴포넌트 스캔과 자동 의존관계 설정 컨트롤러가 서비스를 통해서 기능을 동작하는 것을 의존관계가 있다고 표현한다. ( 컨트롤러가 서비스를 의존한다. ) MemberController 만들어주기 스프링은 @Controller라는 어노테이션을 보고 스프링이 작동할 때 해당 컨트롤러 객체를 생성해서 가지고 있는다. => "스프..

    [Vue+BootStrap] b-table에서 특정 컬럼 클릭 시 이벤트 걸기(세부사항 페이지로 이동)

    [Vue+BootStrap] b-table에서 특정 컬럼 클릭 시 이벤트 걸기(세부사항 페이지로 이동)

    {{ data.item.subject }} { key: "articleno", label: "글번호", thClass: "w10" }, { key: "subject", label: "제목", thClass: "w60" }, { key: "hit", label: "조회수", thClass: "w10" }, { key: "userid", label: "작성자", thClass: "w10" }, { key: "regtime", label: "작성일", thClass: "w10", formatter: (value, key, item) => { return moment(new Date(value)).format("YY.MM.DD"); }, }, b-table를 사용할 때 필드와 데이터를 태그안에 넣어서 사용하는 ..

    [Spring] 인프런 스프링 입문 강의 정리 #3

    [Spring] 인프런 스프링 입문 강의 정리 #3

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 회원 관리 예제 - 백엔드 개발 비지니스 요구사항 정리 비지니스 요구사항은 가장 쉽게 구성되어있다. 그래서 데이터, 기능 모두 간단하게 구성되어있다. DB는 아직 정해지지 않은 상황 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 ..

    [BJ] 백준 21610 마법사 상어와 비바라기 (JAVA)

    [BJ] 백준 21610 마법사 상어와 비바라기 (JAVA)

    문제 https://www.acmicpc.net/problem/21610 풀이 방법 문제에 따라서 순서대로 차근차근 구현해갔다. 문제에서 주목해야할 점은 1. 구름이 이동할 때 범위에 신경써야 하는 것 2. 대각선 방향을 확인할때의 범위는 또 다르게 적용된다는 것 3. 한꺼번에 처리하려다가 오히려 잘못된 값이 나올 수 있다는 점 이 세가지인 듯 하다. 나는 구현하는 건 어렵지 않았지만 3번 때문에 디버깅하는데 조금 시간이 걸렸다. 그리고 격자도 그렇고, 방향도 그렇고 인덱스 1부터 시작하는걸 나는 0부터 시작하는 걸로 수정해서 구현했다. 전제적인 과정을 정리하면 다음과 같다. 1. 처음에 구름 생성해주기 2. M번 이동 실행하기 1) 모든 구름을 올바른 방향으로 이동 시키기 2) 물의 양 증가시키기 3)..