반응형

분류 전체보기 210

[백준/Python] 스도쿠

https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net import sys sudoku = [list(map(int, sys.stdin.readline().split())) for _ in range(9)] # 스도쿠 숫자 리스트 zeros = [(i, j) for i in range(9) for j in range(9) if sudoku[i][j] == 0] # 해결해야 할 칸 리스트 flag = False # 답이 출력되었는지 확인하는 변수 # 가..

Algorithm/백준 2021.09.21

[백준/Python] N-Queen

https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 백트래킹 문제로 DFS를 사용하여 해결할 수 있었다. 근데 시간초과 문제 때문에 어려웠던 문제였다. 시간 초과를 해결하기 위해서는 1. 퀸을 배치할 수 있는지 확인할 때 break 를 사용하여 시간이 덜 걸리게 한다 2. pypy3 를 사용한다 (python3는 시간초과가 난다) def queen(n, N) : global result if n == N: # 더 이상 탐색할 수 없는 경우 재귀함수를 빠..

Algorithm/백준 2021.09.20

[백준/Python] 스타트와 링크

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net import sys n = int(sys.stdin.readline()) # 사람 수 graph = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] # 능력치 리스트 visited = [False] * n # 방문 여부 리스트 answer = 1e9 # 능력치 차이의 최소값 # DFS 수행 def dfs(depth, now): global answer..

Algorithm/백준 2021.09.18

[백준/Python] 연산자 끼워넣기

https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net n = int(input()) # 수의 개수 nums = list(map(int, input().split())) # 숫자 리스트 op = list(map(int, input().split())) # 연산자 리스트 r_max, r_min = -1e9, 1e9 # 식의 최대값, 최소값 # DFS 수행 def dfs(depth, result, p..

Algorithm/백준 2021.09.17

[SpringBoot] 5주차 스터디 (AWS RDS, EC2)

이전에 만들었던 프로젝트를 AWS 와 연결하여 배포해보았다. 1. AWS RDS ① RDS 를 구매한다. 다음과 같은 설정으로 데이터베이스를 생성한다. ② RDS 포트를 열어준다. 생성한 데이터베이스에서 보안그룹을 클릭하면 두번째 사진과 같은 화면이 나온다. 그 화면에서 인바운드 규칙을 수정해주면 된다. ③ 스프링부트 프로젝트와 RDS 를 연결한다. 우측에 [Database] - [+] - [Data Source] - [MySQL] 를 선택한다. 선택하면 이런 화면이 뜨는데 RDS에서 설정한 것들의 값을 넣으면 된다. Host 는 RDS 데이터베이스의 엔드포인트이다. User와 Password 는 데이터베이스를 만들 때 설정한 마스터 이름과 마스터 비밀번호이다. Database는 데이터베이스를 만들 때 ..

Back-end/Spring 2021.09.16

[SpringBoot] 4주차 스터디 ② (나만의 셀렉샵 만들기, 네이버 쇼핑 API)

이전 포스팅에 이어서 계속해서 나만의 셀렉샵을 만들어 보겠다. https://soohyun6879.tistory.com/200 [SpringBoot] 4주차 스터디 ① (나만의 셀렉샵 만들기, 네이버 쇼핑 API) 네이버 쇼핑 API를 사용하여 나만의 셀렉샵을 만들어 보았다. 프로젝트 구조는 다음과 같다. 1. 네이버 쇼핑 API 신청하기 네이버 쇼핑 API 를 사용하기 위해서는 API 사용 신청을 해야 한다. 다음 링 soohyun6879.tistory.com 1. 네이버 쇼핑 API 사용하기 네이버 쇼핑 API 를 사용하여 검색된 상품 목록을 가져온다. 검색된 상품 목록은 String 형식으로 가져와지기 때문에 화면에 보여줄 수 있도록 하려면 DTO로 변환하는 과정이 필요하다. @Component /..

Back-end/Spring 2021.09.09

[SpringBoot] 4주차 스터디 ① (나만의 셀렉샵 만들기, 네이버 쇼핑 API)

네이버 쇼핑 API를 사용하여 나만의 셀렉샵을 만들어 보았다. 프로젝트 구조는 다음과 같다. 1. 네이버 쇼핑 API 신청하기 네이버 쇼핑 API 를 사용하기 위해서는 API 사용 신청을 해야 한다. 다음 링크에서 신청할 수 있다. https://developers.naver.com/docs/search/shopping/ 검색 API 쇼핑 검색 개발가이드 NAVER Developers - 검색 API 쇼핑 검색 개발가이드 developers.naver.com 다음과 같은 양식으로 API 이용 신청을 한다. 신청이 끝나면 Client ID 와 Client Secret 를 발급받을 수 있다. 2. Repo(Domain, Repository) - Repo 는 가장 안쪽 부분을 의미하고, DB와 맞닿아 있다. ..

Back-end/Spring 2021.09.09

[백준/Python] 좌표 압축

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net [처음 코드] n = int(input()) nums = list(map(int, input().split())) comp = sorted(list(set(nums))) for num in nums: print(comp.index(num), end = ' ') 처음엔 index() 를 사용해서 리스트에서의 인덱스를 찾아 출력하도록 하였다. 그랬더니..

Algorithm/백준 2021.09.08

[백준/Python] 단어 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 단어 길이 기준으로 정렬하는 조건을 넣어 정렬하면 길이 순으로 정렬되고 같은 길이 안에서는 사전 순으로 정렬된다고 생각했다. 별다른 조건없이 정렬했을 때 사전 순으로 정렬되니까! 근데 결과를 출력해보니 같은 길이 안에서 사전 순으로 정렬되지 않았다... ㅜ import sys n = int(sys.stdin.readline()) words = [] for _ in range(n): wo..

Algorithm/백준 2021.09.06

[SpringBoot] 3주차 스터디 (메모장 만들기, Spring JPA)

Spring JPA 를 사용하여 메모장을 만들어보았다. 프로젝트 구조는 다음과 같다. 1. Repo(Domain, Repository) - Repo 는 가장 안쪽 부분을 의미하고, DB와 맞닿아 있다. 먼저 Memo.java 파일을 생성한다. 이 클래스는 DB의 테이블 역할을 하는 Domain 클래스이다. @NoArgsConstructor // 기본생성자 대신 생성 @Getter // Lombok이 getter 자동 생성 @Entity // 테이블과 연계되는 클래스임을 스프링에게 알려줌 public class Memo extends Timestamped { // 생성,수정 시간을 자동으로 생성하도록 상속받음 @GeneratedValue(strategy = GenerationType.AUTO) // ID ..

Back-end/Spring 2021.09.02
반응형