Stay Hungry Stay Foolish

분류 전체보기 423

BOJ 9461번 : 파도반 수열 (Python/Silver 3)

9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 설명 첫 정삼각형이 1일 때 변의 길이는 1이다. 아래와 같은 그림처럼 나선형으로 삼각형이 이어진다. 만약 1, 1, 1, 2, 2, 3, 4, 5, 7, 9 가 있을 때 10번째 삼각형의 변의 길이는 9이다. N이 주어졌을 때 N번째 삼각형의 변의 길이를 출력하면 된다. 풀이 • Dynamic Programming 문제 피보나치 수열과 비슷하다. 규칙성을 찾아보면 아래 그림에서 1번째와 2번째를 더하면 4번째 값이 나온다. 고로, 4만큼 차이가 난다. 또한, 아래 ..

[IntelliJ Error] Commit checks failed (Windows)

Commit을 했는데 알림이 떴다. 전부터 알림이 떠도 Commit Anyway가 있길래 무시하고 했는데 이게 언젠가 큰 돌이 되어서 날아올 것 같았다. 그러나 구글링을 해도 해결 방법을 찾아볼 수 없었다... 해결 방법 지금까지 인텔리제이 우측 상단에 있는 Git 아이콘을 클릭해서 처리했는데 이렇게 하면 버전? 문제 때문에 그런 것 같다고 추측한다. 그래서 과정이 번거롭긴 하지만 안전하게 터미널에서 처리하기로 했다. • staging 추가: git add . or git add -A • 커밋: git commit -m '커밋메시지' • 푸시(업로드): git push 기억 안 날 때마다 참고하기 좋은 블로그 터미널에서 깃 사용 방법 ➜ 참고 링크

TIL 2023.10.25

[스프링 부트] 6. 게시판 만들기 삭제 처리

01. 삭제 버튼 생성 삭제 버튼을 생성하고, 버튼을 클릭하면 삭제 처리를 한다. html 파일에 버튼을 추가 처리 service controller에 url 매핑 thymeleaf로 처리 01-1. boardview.html에 삭제 버튼 추가 제목입니다. 내용이 들어갈 부분입니다. 글삭제 버튼으로도 가능( 태그 대신에 아래 코드를 넣어주면 된다.) 삭제하기 실행하기(http://localhost:8080/board/view?id=1) 01-2. BoardService에 메소드 추가 (처리 Service) • deleteById Entity의 id를 넘겨 삭제 처리를 한다. Spring Data CrudRepository interface의 구현체인 SimpleJpaRepository에 정의되어있다. (..

[IntelliJ Warning] Lombok requires enabled annotation processing (Windows)

Lombok을 사용하니깐 이런 알림이 실행할 때마다 계속 뜬다. 에러는 아니고 경고 수준인 것 같다. 해석하면 "Lombok에서는 주석 처리를 활성화해야 합니다." 해결 방법 1 알림창에서 탭 클릭하면 'Don't show again'이라는 게 있는데 더 이상 알림을 보지 않겠다라는 말이다. 이걸로 해결이 안 되면 아래의 해결 방법 2로 해보기. 해결 방법 2 File > Settings or Ctrl + Alt + S 하면 Settings창 활성화 Build, Execution, Deployment > Compiler > Annotation Process Enable annotation processing 체크 그럼 이제 알림이 안 뜬다.

TIL 2023.10.25

[스프링 부트] 5. 게시판 만들기 게시물 리스팅

01. 테스트 프로시저 테스트 데이터를 만드는 것과 같다. 게시글 리스트를 보려면 어느 정도의 글이 있어야 하는데 데이터가 없으면 개발하는데 불편하다. 즉, 직관적으로 보고 개발하기 위한 것이다. 실행 결과 120개까지 생성되게 했는데 테이블의 결과를 보면 120개의 데이터 생성된 것을 볼 수 있다. 02. 리스트 페이지 생성 board > main > resource > templates에 게시물 리스트를 만들어줄 html 파일을 생성한다. (boardlist) 글번호 제목 1 제목입니다. html 코드는 중요한 게 아니므로 디자인은 신경쓰지 않는다. 02-1. BoardController에 메소드 추가 BoardController에 List메소드를 추가한다. 앞에서 만들었던 html 파일의 이름과 동..

[스프링 부트] 4. 게시판 만들기 게시글 작성폼 생성과 처리

01. HTML 파일 생성 board > src > main > resources > templates에 HTML 파일을 생성한다. 그리고 아래와 같이 작성해준다. 태그 해석 • - 타이틀 명은 '게시물 작성 폼'이라고 한다. • - 분할하다는 뜻의 Division의 준말로, HTML문서 내에서 한 개의 가로 공간(Block)을 만드는 태그이다. id, class 속성 모든 태그에는 id 속성과 class 속성을 지정해 줄 수 있는데, 이를 이용하면 CSS나 JavaScript에서 태그를 좀더 쉽게 다룰 수 있다. id는 원칙상 하나의 id당 하나의 태그에만 적용 할 수 있으며, class는 하나의 class를 여러 태그에 적용 할 수 있다. • - 사용자가 여러 줄의 텍스트를 입력할 수 있는 텍스트 입..

BOJ 11053번 : 가장 긴 증가하는 부분 수열 (Python/Silver 2)

11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 설명 부분 수열의 최대 길이를 구해야 하는 문제이다. 부분 수열이란 주어진 수열의 일부 항을 원래 순서대로 나열하여 얻을 수 있는 수열이다. 쉽게 말해서 이전 수보다 크면 수열이 이루어진다. 흔히 수학에서 보았던 두 항의 차이가 일정한 등차수열을 말하는 것이 아니다. 예를 들어, A : { 10, 20, 10, 30, 20, 50 } 이라는 수열이 있을 때, 부분 수열은 A : { 10..

[스프링 부트] 3. 게시판 만들기 테이블 생성

01. MySQL Workbench 접속 Board 스키마에서 Tables을 오른쪽 마우스로 클릭하면 Create Table라는 게 있다. Create Table을 클릭하면 테이블을 생성할 수 있다. 02. 테이블 생성 테이블 명과 컬럼 명을 위와 같이 설정한다. id - 인덱스를 표현하고, datatype은 역시 int로 설정한다. id를 기본키로 지정하고 NOT NULL을 해준다. AI는 Auto Increment라는 것인데, AUTO INCREMENT를 사용하면 레코드의 값이 중복되지 않고 1씩 자동 증가하게 된다. title - 제목을 표현하고, datatype은 VARCHAR(45)로 설정한다. 최대 45자의 가변길이를 사용할 수 있다. content - 내용을 표현하고, datatype은 TE..

[스프링 부트] 2. 게시판 만들기 프로젝트 생성

01. 프로젝트 생성 → 링크를 클릭하면 spring initializr로 이동한다. https://start.spring.io 인텔리제이에서도 프로젝트를 생성할 수 있지만, 그보다 더 편하게 웹에서 생성할 수 있는 spring initializr라는 것을 통해서 프로젝트를 새로 생성한다. 아래와 같이 설정을 해준다. • 관리 툴 : Gradle - Groovy (Gradle : 빌드 도구) • 언어 : Java • 스프링 부트 버전 : 3.1.0 (최신버전) (SNAPSHOT은 개발하고 있는 버전이기 때문에 선택X) • 프로젝트 이름 : Traveling.Webproject • 자바 버전 : 17 (스프링 부트 버전 3.0.X 이상을 사용하고자 한다면 자바 17을 선택해야 한다.) • Dependenc..

[스프링 부트] 게시판 만들기 개발 환경 세팅

게시판 만들기 참고 영상 - https://www.youtube.com/watch?v=frI5CoZe-vE&list=PLZzruF3-_clsWF2aULPsUPomgolJ-idGJ&index=1 01. IntelliJ(인텔리제이) 다운로드 최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요 www.jetbrains.com 위의 링크를 클릭하면 다운로드 페이지로 이동합니다. 다운로드 페이지에 가면 Ultimate 버전(유료)과 Community Edition 버전(무료)이 있다. Community 버전으로 설치한다. 옵션 선택 설치 되었으면 실행해주고 옵션에서 아래와 같이 선택한다. 그리고 계속 Next를 눌러주면 설치가 완료된다. 02. MariaDB 다운로드 Download..

[스프링 프레임워크] 기본 개념 정리 1

스프링 프레임워크 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 프레임워크 기반 기술로서 쓰이고 있다. 인터페이스(Interface) 추상 메소드만을 가질 수 있고, 구현 메서드는 가질 수 없는 일종의 추상클래스이다. ※ 추상 메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이다. abstract 키워드를 선언하는 선언부만 존재하고, 구현부는 작성하지 않고 사용한다. 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩(Overriding)하여 사용한다. 인터페이스의 역할 - 객체를 어떻게 구성해야 하는지 정리한 설..

자바/스프링 2023.10.18

[파이썬을 파이썬답게] Part 06. Itertools / Collections 모듈 (Programmers)

🗒 강의노트 🗒 곱집합 (Cartesian product) 구하기 보통 곱집합을 구할 때 반복문을 이용해 두 iterable의 원소를 하나씩 곱해간다. 파이썬에서는 itertools.product를 이용하면, for문을 사용하지 않고도 곱집합을 구할 수 있다. import itertools iterable1 ='ABCD' iterable2 = 'xy' print(list(itertools.product(iterable1, iterable2))) ☐ 문제 1 2차원 리스트를 1차원 리스트로 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열을 담은..

[파이썬을 파이썬답게] Part 05. Sequence Types 다루기 (Programmers)

☐ 문제 1 sequence 멤버를 하나로 이어붙이기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 리스트 mylist를 입력받아, 이 리스트의 원소를 모두 이어붙인 문자열을 리턴하는 함수, solution을 만들어주세요. 예를 들어 mylist가 ['1', '100', '33'] 인 경우, solution 함수는 '110033'을 리턴하면 됩니다. 제한 조건 mylist의 길이는 100 이하인 자연수입니다. mylist의 원소의 길이는 100 이하인 자연수입니다. ☑ Solution def solution(mylist): return ''.joi..

[파이썬을 파이썬답게] Part 04. Iterable 다루기 (Programmers)

🗒 강의노트 🗒 sort() : 리스트의 원소를 정렬하는 함수로, 원본의 멤버 순서를 변경한다. 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort 함수를 사용할 수 없다. sorted() : 매개변수로 들어온 iterable한 데이터를 새로운 정렬된 리스트로 만들어서 반환해 주는 함수다. sort 예시 list1 = [3, 2, 5, 1] list2 = [i for i in list1] # 또는 copy.deepcopy를 사용 list2.sort() sorted 예시 list1 = [3, 2, 5, 1] list2 = sorted(list1) ☐ 문제 1 [ 2차원 리스트 뒤집기 ] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 ..