전체 글 44

[백준 1417번] 국회의원 선거 python

문제다솜이는 사람의 마음을 읽을 수 있는 기계를 가지고 있다. 다솜이는 이 기계를 이용해서 2008년 4월 9일 국회의원 선거를 조작하려고 한다.다솜이의 기계는 각 사람들이 누구를 찍을 지 미리 읽을 수 있다. 어떤 사람이 누구를 찍을 지 정했으면, 반드시 선거때 그 사람을 찍는다.현재 형택구에 나온 국회의원 후보는 N명이다. 다솜이는 이 기계를 이용해서 그 마을의 주민 M명의 마음을 모두 읽었다.다솜이는 기호 1번이다. 다솜이는 사람들의 마음을 읽어서 자신을 찍지 않으려는 사람을 돈으로 매수해서 국회의원에 당선이 되게 하려고 한다. 다른 모든 사람의 득표수 보다 많은 득표수를 가질 때, 그 사람이 국회의원에 당선된다.예를 들어서, 마음을 읽은 결과 기호 1번이 5표, 기호 2번이 7표, 기호 3번이 7..

알고리즘 공부 2024.08.07

[백준 13241번] 최소공배수 python

두 자연수의 최대 공약수를 효율적으로 찾는 알고리즘으로유클리드 호제법이 있다. 1. 나머지 연산을 사용한 반복 두 수 a, b (a > b)에 대해서, a를 b로 나누어 나머지를 구한다.나머지를 r이라 할 때,a와 b의 최대공약수는 b와 r의 최대 공약수와 같다. 2. 반복 과정 b와 r에 대해 같은 과정을 반복한다. b를 r로 나눈 나머지를 구하고,이를 새로운 r로 사용한다. 나머지가 0이 될 때까지 반복한다. 3. 최대 공약수 결정 나머지가 0이 되면, 나누는 수가 a와 b의 최대 공약수가 된다.나머지가 0이 되었다는 것은 바로 전 단계의 나누는 수가 나누어지는 수의 약수라는 것을 의미하고 이는 두 수의 공통된 약수 중 가장 큰 값이 된다. ex) 48과 2048 % 20 = 8r = 8 이라고 하면..

알고리즘 공부 2024.08.07

[백준 11728번] 배열 합치기 python

(리스트 합치기)1. + 연산자를 이용한 방법입력A = [3, 5]B = [2, 9] 일때 출력으로 2. extend()를 사용하는 방법똑같이 입력했을 때 출력으로 [구현한 코드]N, M = map(int, input().split())li = []A = list(map(int, input().split()))# print(A)B = list(map(int, input().split()))# print(B)li = A + Bli.sort()print(*li) +- map()을 사용한 방법list1 = [[1, 10], [2, 22], [3, 19]]list2 = [[4, 2], [5, 9], [6, 3]]merged_list = [[1, 10, 4, 2], [2, 22, 5, 9], [3, 19, 6, ..

알고리즘 공부 2024.08.05

[백준 2167번] 2차원 배열의 합 python

1. N개의 줄에 M개의 정수로 배열이 주어진 것 해결N, M = map(int, input().split())li = []for _ in range(N) : p = list(map(int, input().split())) li.append(p)이렇게 설정해두면이차원 배열이 잘 생성된다.li2 = []K = int(input())for _ in range(K): sum = 0 i,j,x,y = list(map(int, input().split())) for t in range(i-1,x): for r in range(j-1, y): sum+=li[t][r] li2.append(sum)(i, j) 위치부터 (x, y) 위치까지(행, 열)에 저장된 ..

알고리즘 공부 2024.08.05

View 환경설정

- welcome page 기능resources/static 아래에 index.html 파일을 올려두면 Welcome page 기능 제공함.Hellohello 서버를 껐다가 다시켜면 이렇게 잘 뜸. - thymeleaf 템플릿 엔진동작하고 프로그래밍 되는 화면 만들기 첫 진입점이 controller.hello.hellospring 밑에 controller 패키지 생성.controller 패키지 밑에 HelloController 생성. * 애노테이션 @Controller 꼭 붙이기package hello.hellospring.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import..

라이브러리 살펴보기

build.gradle에 dependencies에는 라이브러리가 몇 개 없지만External Libraries에는 많이 존재.=> 의존 관계. gradle에 추가한 라이브러리가 필요한 라이브러리를 External Libraries로 끌고 옴. - spring-boot-starter-web1. spring-boot-starter-tomcat : 톰캣(웹서버)2. spring-webmvc : 스프링 웹 MVC - spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(view) - spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅* 실무에서는 logging 많이 씀.1. spring-boot spring-core 존재2. spring-boot-star..

프로젝트 생성(환경설정)

-JAVA 11버전 추천 하지만 난 17버전으로 설치되어있는 상태라 이대로 해보기로 했다. 1. start.spring.io들어가서 프로젝트 생성https://start.spring.io/Spring Boot의 SNAPSHOT : 아직 개발 중이라는 뜻M1 : 릴리즈되기 전 ADD DEPENDENCIES를 눌러 라이브러리 선택web project 생성 => Spring Web,템플릿 엔진 => Thymeleaf를 검색하여 선택한다. GENERATE 버튼 누르면 다운받아짐.압축 풀고, Intellij에 프로젝트를 연결시킴 * 테스트 중요함.*build.gradle : spring boot나오면서 start.spring.io덕분에 편하게 할 수 있게 됨.버전 설정하고 라이브러리 땡겨옴.*.gitignore ..

@PathVariable, @RequestParam 등 스프링부트 애노테이션 정리

@PathVariable, @RequestParam, @ModelAttribute모두 Http 요청에 오는 정보들을 컨트롤러의 매개변수로 바인딩할 때 편하게 해주는 애노테이션들 1. @PathVariableURL 템플릿에서 동적으로 변하는 값들을 추출하는데 사용. 주로 리소스 식별자를 얻는데 사용함.ex) users/1 : 식별자가 1인 user를 조회해야할 때 => @PathVariable 사용 2. @RequestParam쿼리 파라미터, 쿼리 스트링이나 폼 데이터를 바인딩할 때 사용ex) users?name=spring: name이 "spring"인 user를 조회해야 할 때 => @RequestParam * 주의@RequestParam을 사용해서 받아오는 변수에 값이 존재하지 않으면 400 erro..

spring & springboot 2024.08.03

1차 기술세미나(2024.01.03 발표)

주제 : 데이터 처리를 위한 Pandas와 Numpy의 활용목차 1. 데이터에 대한 이해2. Pandas, Numpy 소개3. Pandas 실제 사용 예시4. Pandas 성능 향상을 위한 tip 1. 데이터에 대한 이해현재 데이터는 폭발적으로 증가하는 추세 데이터의 크기가 커질수록 데이터를 분석하기 어려워짐.=> Numpy와 Pandas는 데이터를 '효율적'으로 분석하기 위한 패키지 2. Pandas, Numpy 소개- Pandas란 무엇인가?정의 : 데이터 처리를 위한 Python 라이브러리강점 : 대용량 데이터 처리 가능, 데이터 구조화 기능, 데이터 조작 기능, 데이터 시각화 기능 - Numpy란 무엇인가?정의 : 행렬 및 대규모 다차원 배열을 처리하는 Python 연산 라이브러리강점1. ndar..

2차 기술세미나 정리(2024.03.07 발표)

주제 : SQL 성능 최적화 전략 1. 인덱스 최적화2. 파티셔닝 최적화3. 쿼리 튜닝으로 나누어 최적화 전략를 세웠다. 1. 인덱스 최적화인덱스 정의 데이터 베이스 테이블의 성능 향상. 검색 및 정렬 작업을 빠르게 수행하기 위한 데이터의 논리적 순서를저장하는 데이터 구조인덱스 장단점장점 : 데이터 검색 속도 향상, 정렬된 데이터 접근 용이, 데이터 집합 연산 최적화단점 : 스토리지 공간 요구, 데이터 변경에 따른 오버헤드, 인덱스 선택과 관리의 복잡성인덱스 종류(저장 방식)클러스터형 인덱스 테이블 당 1개만 존재 가능데이터 정렬에 따른 영향물리적으로 레코드 정렬보조 인덱스 테이블 당 여러개 존재 가능데이터 정렬에 영향 미치지 않음.다양한 쿼리 유형 지원인덱스 생성 조건카디널리티(cardinality)가..