전체 글 102

[Python] 큐(Queue) 구현 예제

from collections import deque #큐(Queue) 구현을 위해 deque 라이브러리 사용 queue = deque() #삽입(1) - 삽입(2) - 삽입(3) - 삽입(4) - 삭제() - 삽입(5) - 삽입(6) - 삭제() queue.append(1) queue.append(2) queue.append(3) queue.append(4) queue.popleft() queue.append(5) queue.append(6) queue.popleft() #먼저 들어온 순서대로 출력 print(queue) #결과 : deque([3,4,5,6]) # 역순으로 바꿈 queue.reverse() #나중에 들어온 원소부터 출력 print(queue) #결과 : deque([6,5,4,3])

Python 2020.10.10

[Algorithm] 백준 정렬 알고리즘 - 1764번 듣보잡 풀이

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. �� www.acmicpc.net 보통 처음 생각하는 풀이는 둗도 못한 사람의 수 N개의 이름을 담은 리스트를 입력받고 보도 못한 사람의 수 M개의 이름을 입력받으면서 듣도 못한 사람의 수 리스트에 이미 이름이 있으면 결과 리스트에 담아서 정렬을 하면 된다고 생각한다. 하지만!! 그렇게 하면 시간초과가 뜬다 (N,M이 최대 500000이기 때문에) 그래서 나의 풀이는 다음과 같다 n, m = map(int,input().s..

Algorithm 2020.10.05

[Python] 리스트 특정 원소 모두 지우기

아래와 같이 파이썬의 리스트에서 remove()는 한 가지만 지우게 된다. a = [1, 2, 3, 3] a.remove(3) #위의 배열에 3이 2개있지만 하나만 제거됨 print(a) # 결과 값 : [1, 2, 3] 따라서 리스트에서 특정 원소를 모두 지우는 방법은 아래와 같다. a = [1, 2, 3, 4, 5, 5, 5] remove_set = [3, 5] #지우고 싶은 원소 #remove_set에 포함되지 않은 값만 저장 result = [i for i in a if i not in remove_set] print(result) #결과 값 : [1, 2, 4]

Python 2020.09.13

[Algorithm] 알고리즘 수행 시간 측정 방법

알고리즘에서 시간 복잡도는 굉장히 중요하다! 따라서 알고리즘 테스트를 볼 때 내 소스 코드가 얼만큼의 시간 복잡도를 가지고 있는지 확인해보는 것도 중요하다. import time array = [1,2,3,4,5]*100 start_time = time.time() #측정 시작 array.sort() #정렬 알고리즘 수행 end_time = time.time() #측정 종료 print("수행 시간 ::",end_time - start_time) #결과값 = 수행 시간 :: 3.0040740966796875e-05 위와 같이 정렬 알고리즘 수행을 예로 확인할 수 있다.

Algorithm 2020.09.13

[Spring Boot] Thymeleaf 리소스 변경 시 Live reload 적용 오류 해결 방법

먼저, 기본적인 Live reload 설정(Devtools 의존성 추가, Copiler에서 Auto설정 등)을 했다고 가정한다. 검색해서 나온 설정을 해도 Live Reload가 적용이 안될 때가 있는데 그럴때는 1. Html Reload spring.thymeleaf.cache=false spring.thymeleaf.prefix=file:src/main/resources/templates/ 2. Css, Js Reload spring.resources.static-locations=file:src/main/resources/static/ 위와 같이 application.properties를 설정해주면 된다!!!

Spring Boot 2020.08.26

[Spring Boot] Customizing the Banner

Spring Boot를 실행하면 아래와 같이 콘솔에 찍히는 것을 볼 수 있다. 이 것을 Banner라고 하는데 Spring Boot공식 홈페이지에서 볼 수 있듯이 Customizing이 가능하다!! 먼저, resources 밑에 banner.txt , banner.gif, banner.jpg, banner.png 이런 이름으로 파일을 만들면 된다! 위와같이 설정할 수 있고 Spring Boot 홈페이지(출처 : https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-spring-application)에서 보면 아래와 같이 변수를 쓸 수 있도록 되어있다. (하지만, Descrip..

Spring Boot 2020.08.18

[Spring] Lombok(@Builder 와 @Accessors)의 편리한 기능

1. @Builder Lombok에서 @AllArgsConstructor, @NoArgsConstructor @Data를 활용해서 생성자를 편리하게 사용할 수 있다. 하지만 생성자를 만들 때 필드가 많을 시 단점이 존재! 예를 들어 아래와 같은 User Class가 있다고 하자. @Data @AllArgsConstructor @NoArgsConstructor public class User { private String account; private String password; private String status; private String email; private String phoneNumber; private LocalDateTime registeredAt; private LocalDateT..

Spring 2020.07.09

[Spring Boot] @RequestParam 이란?

@RequestParam이란 흔히 Controller에서 많이 보이는 어노테이션이다.  @GetMapping("/getParameter") public String getParameter(@RequestParam String id, @RequestParam(name = "password") String pwd){ String password="bbbb"; System.out.println("id: "+id); System.out.println("password: "+pwd); return id+pwd; } @GetMapping("/getParameter") : www.localhost:8080/getParameter로 Get방식 접속할 경우를 의미한다. 여기서 @RequestParam으로 id, pwd..

Spring Boot 2020.07.05