반응형

It 200

[SpringBoot] 9주차 스터디 (페이징, JPA 연관관계)

1. 페이징(Paging) - 페이징은 모든 데이터를 무한 스크롤하여 보는 것이 아니라 페이지로 나눠서 데이터를 나눠서 볼 수 있는 것이다. 다음 사진처럼 데이터가 페이지마다 나눠져서 볼 수 있는 방식이다. 나만의 셀렉샵에서 페이징 처리하는 부분을 추가해보겠다. ProcductController 에서 "페이지 번호, 각 페이지의 상품 수, 정렬 방식, 오름차순 여부, 회원 정보" 를 입력받아 요쳥에 맞는 상품들을 ProductService 를 통해 조회한다. Pageable 은 쉽게 페이징 처리를 할 수 있도록 도와준다. @RestController // JSON으로 데이터를 주고받음을 선언합니다. public class ProductController { // 멤버 변수 선언 private final ..

Back-end/Spring 2021.10.17

[백준/Python] 카드

https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net [ 처음 코드 - 시간 초과 ] n = int(input()) cards = [int(input()) for _ in range(n)] print(max(cards, key = cards.count)) [ 최종 코드 ] 시간 초과가 나서 찾아보니 딕셔너리를 쓰면 시간 초과가 해결된다고 해서 딕셔너리를 사용한 코드로 바꾸었다! 딕셔너리로 해도 시간초과가 난다면 PyPy3 로 해보면 통과될 것이..

Algorithm/백준 2021.10.13

[백준/Python] 요세푸스 문제 0

https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net n, k = map(int, input().split()) people = [i for i in range(1, n+1)] idx = 0 # 제거해야 할 위치 delete = [] # 제거할 순서를 담은 리스트 while people: idx = (idx + k - 1) % len(people) # 제거할 위치 구하기 delete.append(people.pop(idx)) print('') 1. idx는 리스트에서 제거해야 할 위치를 담고 있는 변수이고, delete는 제거해야 할..

Algorithm/백준 2021.10.10

[SpringBoot] 8주차 스터디 (단위테스트, 통합테스트)

1. 단위 테스트 - 단위 테스트는 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하는 것이다. 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인할 수 있다. - JUnit을 사용하여 단위 테스트를 할 수 있다. 다음은 Product 클래스가 잘 동작하는지 확인하기 위한 단위 테스트 코드이다. 상품이 잘 저장되는지 확인할 수 있다. given 에 저장할 정보를 입력하고, when 에서 상품을 저장한다. then 에서 상품이 잘 저장이 됐는지 확인한다. class ProductTest { @Test @DisplayName("정상 케이스") void createProduct_Normal() { // given Long userId = 100L; String title..

Back-end/Spring 2021.10.07

[백준/Python] 후위 표기식2

https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net n = int(input()) postfix = input() nums = [int(input()) for _ in range(n)] stack = [] # 후위 표기식 계산 for p in postfix: if 'A'

Algorithm/백준 2021.10.07

[백준/Python] 괄호

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net [ 처음 코드 ] 처음엔 괄호 개수를 세는 것으로 코드를 짰었다. 하지만 ')(' 같은 반례 때문에 결과는 틀렸다고 나왔다....ㅜ n = int(input()) for _ in range(n): arr = list(input()) count = 0 while arr: now = arr.pop() if now == '(': count += 1 elif now == '..

Algorithm/백준 2021.10.06

[백준/Python] 듣보잡

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net [ 처음 코드 ] - 시간 초과 n, m = map(int, input().split()) not_listen = [input() for _ in range(n)] not_look = [input() for _ in range(m)] # 듣보잡 구한 후 사전 순으로 정렬 result = [i for i in not_listen if i in not_look] result.sort() print(..

Algorithm/백준 2021.10.06

[백준/Python] 숨바꼭질 6

https://www.acmicpc.net/problem/17087 17087번: 숨바꼭질 6 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이 www.acmicpc.net n, S = map(int, input().split()) pos = list(map(int, input().split())) dif = list(set(abs(p - S) for p in pos)) # 수빈이와 동생들의 위치 차이 리스트 D = min(dif) # 최대공약수 구하는 메서드 def gcd(a, b): res = 0 while b: res = a % ..

Algorithm/백준 2021.10.05

[백준/Python] 01타일

https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net n = int(input()) tile = [0, 1, 2] # 만들 수 있는 2진 수열의 개수 length = len(tile) # 크기가 n인 2진 수열의 개수 if n >= length: for i in range(length, n+1): tile.append((tile[i-1] + tile[i-2])% 15746) print(tile[n]) 이 문제는 동적계획법 문제이기 때문에 각 n의 만들 수..

Algorithm/백준 2021.10.03

[백준/Python] 골드바흐의 추측

https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net n = int(input()) prime = [0, 0] + [1] * 9999 # 소수 리스트 # 에라토스테네스의 체를 이용하여 소수 구하기 for i in range(2, int(10000 ** 0.5)+1): if prime[i]: for j in range(i*2, 10001, i): prime[j] = 0 # 두 소수의 차이가 가장 작은 골드바흐 파티션 구하기 for ..

Algorithm/백준 2021.10.03
반응형