전체 글 111

[백준 14940] - 쉬운 최단거리 c++

문제 https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 접근 방법 BFS문제다. 코드를 줄이려 꼼수쓰지 않고, 코드가 길어지더라도 최대한 정석적으로 풀려고 노력했다. 코드 #include #include #include using namespace std; struct ground { int r; int c; int count; }; int dx[4] = {0, 1, 0, -1}; int dy[4] =..

[백준 9017] - 크로스 컨트리 c++

[백준 9017] - 크로스 컨트리 c++ 문제 https://www.acmicpc.net/problem/9017 9017번: 크로스 컨트리 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 케이스로 주어진다. 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 T 가 주어진다. 두 번째 줄부터는 두 줄에 하나의 www.acmicpc.net 난이도 - 실버3 접근 방법 구현 문제라고 써져 있지만, 정렬 문제에 더 가깝다고 생각했다. 처음엔 쉬워보였는데, 막상 구현하려니 조건이 까다로웠다. deleted_arr를 둬서 6명의 팀원이 없는 팀들을 제거한 상태를 저장하려고 했는데, 배열의 특정 원소를 삭제하는 함수를 몰랐다. 그래서 6명의 팀원이 존재하는 팀만 골라내어 deleted_arr..

검색 필터링 기능 구현(스프링 + mysql + java)

category, 날짜 등으로 필터링 처리가 된검색 결과를 전달하기 위해서 검색 필터링 api를 구현했다. 1. SearchRequestDto와 SearchResponseDto를 작성 위 모든 파라미터 값을 다 채울 필요는 없다. 2. RestController 작성. SearchRequestDto와 page, size의 정보를 파라미터로 받는다. 3. EventRepository에 검색 method 추가 SearchRequestDto의 각 항목마다 따로따로 method를 작성했다. 원래는 mysql 쿼리 하나로 통합검색을 구현하려고 했다. 그러나, 여러개의 keywords가 입력으로 들어오는 경우, keyword를 단어 여러개로 쪼개는 작업이 필요하다. 그리고 각 키워드에 대해서 검색한 리스트를 합쳐야..

프로젝트/잇타 2024.01.21

github push - Permission denied 해결(ssh키 발급 및 설정)

github에 push하려고 봤더니 permission denied가 떴다. 이를 해결하려면 ssh키를 발급받고 git에 등록해야한다. 1. ssh키 발급 terminal로 들어가 ssh-keygen -t rsa -C "아이디@github.com"를 입력한다. 2. 경로를 입력하라고 나오는데 입력하지 않으면 ~/.ssh/id_rsa.pub에 저장된다. 3. 비밀번호도 꼭 입력하지 않아도 된다. 이렇게 발급 받고 나서 4. cat ~/.ssh/id_rsa.pub 명령어를 입력한다. 그러면 ssh키가 등장하는데, 이를 뒤 이메일까지 전부 복사해서 github setting으로 들어간다. new sshkey 버튼을 누르면 아래 창이 뜨는데, 여기 key에 복사한 내용을 입력하고 title은 임의로 작성해주면 ..

스프링 프로젝트와 mariadb 연결 방법(from. 코드로 배우는 리액트)

스프링 프로젝트와 mariadb 연결 방법을 알아보자 1. build.gradle implementation 'org.springframework.boot:spring-boot-starter-data-jpa' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' 2. application.property spring.datasource.url=jdbc:mariadb://localhost:3306/malldb spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.usern..

homebrew 이용한 mariadb 설치(on mac)

mac환경에서 homebrew 이용해 mariadb 설치해보자. 일단 terminal을 켠다. brew list : 설치된 프로그램 조회 brew search mariadb : mariadb의 버전을 확인할 수 있음 brew install mariadb : mariadb의 최신 버전 설치 mariadb 서버 자동 시작하도록 아래 명령어 입력. brew services start mariadb 아래 명령어로 mysql 실행 sudo mysql -u root 아래 명령어를 통해 비밀번호 설정가능! set password=password("1234"); 비밀번호 추가한 이후에는 -p를 추가해서 비번 입력후 mysql 접속가능. sudo mysql -u root -p 입력안해도 password치는 란이 나오는데..

spring에 swagger 적용하는 방법(spring version 3.0 이상)

build.gradle에 다음 라이브러리를 추가한다. implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' 그리고 http://localhost:8080/swagger-ui/index.html 에 들어가면 다음과 같은 창이 뜬다. 근데 api가 뜨지 않는 문제가 발생했다. 분명 나는 TestController를 만들어 놨는데 뭐가 문제일까.... ...... 알고보니 @Controller가 아니라 @RestController라고 적어야 했다. 아래와 같이 수정했다. 근데.. Controller와 RestController의 차이가 뭔가? 찾아보니, Controller는 주로 view를 반환하기 위해 사용하는 전통적인 방법이고, ..

java version 변경

java version을 20에서 17로 바꾸려고 한다. - 설치된 모든 jdk 버전들 확인 $ /usr/libexec/java_home -V - 터미널에 "vim ~/.bash_profile" 입력 후, 환경변수 다음과 같이 설정 vim ~/.bash_profile export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home - 영구적으로 바꿔주기 위해서는 "zshrc" 파일을 수정해야한다. vim ~/.zshrc export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home 터미널을 껐다 키니. 제대로 바뀐 것을 확인할 수 있다. 야호.

Programming in unix

1. Calling fork multiple times pid_t pid1 = fork(); pid_t pid2 = fork(); 위 코드 실행시 아래와 같은 프로세스 그래프가 도출된다. parent에서 child X를 낳고, 또 한 번 parent오 child X가 한 마리씩 프로세스를 낳는다. 총 4개의 프로세스가 생성된다. parent가 받는 id1과 id2는 각각 임의의 자식프로세스의 id이다. 여기서는 X, Z라고 하겠다. X는 id1으로 0을 받고 id2로는 Y프로세스의 id를 받는다. Y는 X의 메모리를 물려받는다. 따라서 id1으로 0을 받는다. X의 자식이므로 id2 또한 0을 받는다. Z는 parent의 메모리를 물려받는다. 따라서 id1으로 x를 받는다. parent의 자식이므로 id..