개발새발 103

[백준 BOJ] 15650 N과 M(2) (python)

문제 출처 : https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 🔥 작성 코드 N, M = map(int, input().split()) lst = [_ for _ in range(1, N+1)] arr = [] for i in range(1 2 3 1001 => 1 4 1010 => 2 4 1100 => 3 4 문제에서는 1 4 보다 2 3이 먼저 출력되면 안되므로 오답입니다. 그래서 result의 원소가 2개가 될 때마다 arr에 저장해두고..

Algorithm/BAEKJOON 2022.03.04

[백준 BOJ] 15649 N과 M(1) (python)

문제 출처 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 🔥 작성 코드 def sol(lst): if len(result) == M: print(*result) return else: for i in range(N): if v[i] == 0: v[i] = 1 result.append(lst[i]) sol(lst) result.pop() v[i] = 0 return N, M = map(int, input().split()) lst = [i..

Algorithm/BAEKJOON 2022.03.04

[Django] Django 기초(프로젝트 및 앱 만들기)

Django 장고는 파이썬으로 만들어진 웹 애플리케이션 프레임워크입니다. 웹 페이지 개발 과정 중 겪는 어려움을 줄여주어 쉽게 웹을 개발할 수 있도록 해줍니다. 데이터 베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 이점이 있습니다. 가상환경 설정 django를 설치하기 전 가상환경을 만들어줍니다. django를 이용한 웹 개발은 이곳에서 이루어져야 합니다. [가상환경 설정하는 법] 2022.03.03 - [개발일기] - [Python] 가상환경(virtual environment) 사용하기 [Python] 가상환경(virtual environment) 사용하기 가상환경 독립된 환경에서 패키지를 다루기 위해 사용합니다. 여러 프로젝트를 진행할 때 패키지 별로 호환성이 다르기 때문에 필요..

개발일기/Web 2022.03.03

[Python] 가상환경(virtual environment) 사용하기

가상환경 독립된 환경에서 패키지를 다루기 위해 사용합니다. 여러 프로젝트를 진행할 때 패키지 별로 호환성이 다르기 때문에 필요합니다. pip 을 통해 패키지를 받으면 파이썬 설치 폴더에 저장됩니다. 이 경우 로컬 내의 프로젝트는 모두 같은 패키지를 공유하게 됩니다. 만약 패키지의 버전이 다른 프로젝트를 사용한다면 호환에 문제가 생깁니다. 따라서 패키지를 따로 관리해야 할 필요가 있습니다. 가상환경을 만들면 가상환경 내에서만 패키지를 사용할 수 있습니다. 가상환경 다루기 windows 기준으로 설명합니다. (제가 윈도우 유저기 때문에 ㅎㅎ) 생성 venv 터미널에서 다음과 같은 명령어를 사용하여 만들 수 있습니다. python -m venv 파이썬 3.3 이상부터 지원합니다. 활성화 마찬가지로 터미널에서 ..

개발일기/Web 2022.03.03

[SWEA] [파이썬 S/W 문제해결 기본] 6일차 - 미로의 거리 (python)

https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🔥 작성 코드 def bfs(si, sj, N): # 초기 데이터 설정 q = [] v = [[-1]*N for _ in range(N)] q.append([si, sj]) v[si][sj] = 0 while q: si, sj = q.pop(0) # 4방향 탐색 for di, dj in ((1, 0), (-1, 0), (0, -1), (0, 1)): ni, nj = si+di, sj+dj # 갈 수 있다면 q에 삽입, 방문 배열에 이전 값 ..

Algorithm/SWEA 2022.02.25

[백준 BOJ] 1063 킹 (python)

https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 🔥 작성 코드 # 위치를 구하기 위한 딕셔너리 생성 trans = { 'A' : 0, 'B' : 1, 'C' : 2, 'D' : 3, 'E' : 4, 'F' : 5, 'G' : 6, 'H' : 7 } # 커맨드 딕셔너리 생성 command = { 'R' : (0, 1), 'L' : (0, -1), 'B' : (-1, 0), 'T' : (1, 0), 'RT' : (1, 1), 'LT' : (1, -1), 'R..

Algorithm/BAEKJOON 2022.02.24

[SWEA] [파이썬 S/W 문제해결 기본] 5일차 - 배열 최소 합 (python)

https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🔥 작성 코드 def sol(row, tot): global result # 행의 마지막을 지나왔으면 종료 if row == N: # 종료 시 총 합이 더 작다면 결과값 갱신 if result > tot: result = tot return # 해당 row에서 값 하나를 tot에 더하고 다음 행 전달 for i in range(N): # 내려받은 v 확인, tot이 이미 result보다 커진 경우는 제외 if v[i] == 0 and tot..

Algorithm/SWEA 2022.02.24

[백준 BOJ] 1091 카드 섞기

https://www.acmicpc.net/problem/1091 1091번: 카드 섞기 지민이는 카지노의 딜러이고, 지금 3명의 플레이어(0, 1, 2)가 있다. 이 게임은 N개의 카드를 이용한다. (0 ~ N-1번) 일단 지민이는 카드를 몇 번 섞은 다음에, 그것을 플레이어들에게 나누어 준다. 0 www.acmicpc.net 🔥 코드 # 입력받기 N = int(input()) P = list(map(int, input().split())) S = list(map(int, input().split())) # 카드 배열 복사 lst = [x for x in P] lst2 = [x for x in P] # 값 초기화 result = -1 cnt = 0 # 한 바퀴 돌 동안 답이 안나오거나 찾으면 break..

Algorithm/BAEKJOON 2022.02.24

[SWEA] [파이썬 S/W 문제해결 기본] 5일차 - 미로 (python)

https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🔥 작성 코드 T = int(input()) for test_case in range(1, T+1): N = int(input()) arr = [input() for _ in range(N)] v = [[0 for _ in range(N)] for _ in range(N)] for i in range(N): for j in range(N): v[i][j] = int(arr[i][j]) if arr[i][j] == '2': ni = i nj ..

Algorithm/SWEA 2022.02.24

[백준 BOJ] 2133 타일 채우기 (python)

https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 🔥 작성 코드 N = int(input()) if N%2: result = 0 else: dp = [0] * (N+1) dp[2] = 3 for i in range(4, N+1, 2): dp[i] = 3*dp[i-2] + 2 if i != 4: for j in range(4, i-1, 2): dp[i] += 2*dp[j-2] result = dp[N] print(result) ⭕ 해설 N이 홀수라면 3xN의 벽은 크기가 홀수가 됩니다. 따라서 2x1, 1x2 크기의 타일로 채울 수 없습니다. N이 짝수일 경..

Algorithm/BAEKJOON 2022.02.23