- 바닥장식 파이썬
- 프로그래머스 알고리즘 고득점 kit
- 스프링 초보
- 프로그래머스 고득점 kit
- 백준 바닥장식 python
- Django 기초
- 프로그래머스 전화번호 목록 파이썬
- 장고 기초
- Spring 초보
- 전화번호 목록 python
- 장고
- 스프링 기초
- dp 알고리즘
- 코테
- 프로그래머스 전화번호 목록 python
- programmers
- 백준 dp
- 백준 다이나믹프로그래밍
- 백준
- 프로그래머스 레벨2
- 프로그래머스 레벨1
- 프로그래머스 level1
- 프로그래머스
- Django
- 코딩테스트
- 알고리즘 공부
- 코딩테스트 연습
- 코테 연습
- spring 기초
- 알고리즘 문제
- Today
- Total
목록전체 글 (65)
일일구름 IT
var과 val의 가장 큰 차이점은 var은 가변(Mutable)변수이고 val은 불변(Immutable)이라는 것이다. var var은 Variable(변수)의 약자로 값의 읽기 쓰기가 모두 허용되는 가변 변수이다. 초기화 후에 값을 변경할 수 있다. 하지만 값을 변경할때 초기 값과 다른 type의 값을 넣을 수 없습니다. 만약 타입을 변경하고 싶다면 형변환을 해주어야 합니다. val val은 Value(값)의 약자로 값의 읽기만 허용되는 불변 변수이다. 초기화만 가능하며 이후에 값을 변경할 수 없다.
문제 내 코드 n, w, l = map(int, input().split()) truck = list(map(int, input().split())) min_time = 1 idx = 1 bridge = [0 for _ in range(w-1)] bridge.append(truck[0]) while(sum(bridge)): bridge.pop(0) if idx 다리길이 + 트럭 갯수 -1 로 계산 했다가 틀렸다.. 내가 간과했던 점은 여러대가 지나갈때 그중 몇개가 왼쪽에 도착하면 오른쪽 트럭이 다리위로 올라가도 최대하중을 넘지않는 경우가 있기 때문에 꼭 출발한 트럭들이 다 지나가지 않..
문제 내 코드 s = input() word = [] w = '' idx = 0 while(idx < len(s)): if s[idx] == '': word.append(s[idx:i+1]) idx = i break elif s[idx] == ' ': word.append(''.join(reversed(w))) w = '' word.append(' ') else: w = w+s[idx] idx += 1 if w: word.append(''.join(reversed(w))) print(''.join(word)) 처음엔 일단 괄호가 나오면 스택인가 싶어 스택을 이용해 구현할 수 있는지 고민해보았다. 그런데 괄호로만 이루어진 단어가 아니기 때문에 다른 방법을 생각해보았다. 괄호가 나오는 태그인 경우와 띄어쓰기..
문제 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 이 문제의 알고리즘 분류는 다익스트라이기 때문에 다익스트라 알고리즘을 이용하여 풀려다가 모든 도로의 거리는 1이기 때문에 bfs 알고리즘을 사용해 문제를 풀었다. 내 코드 import sys from collections import deque n, m, k, x = map(int, sys.stdin.readline()..
문제 이 문제는 플로이드 워셜로 분류된 문제이다. 문제를 푸는 과정은 1. 플로이드 워셜 알고리즘을 이용해 모든 경로 저장 2. CIRCLE이 생기는 경우가 언제인지 3. CIRCLE이 생기지만 1의 경로에 포함되는지 여부 위의 과정중에 3번을 고려하지 않아 제출했을때 52%에서 계속 실패가 떴다.. 내 코드 n = int(input()) m = 0 arr = [[0 for col in range(n)] for row in range(n)] for i in range(n-1): m = int(input()) node = map(int, input().split()) for j in node: arr[i][j-1] = 1 for k in range(n): for i in range(n): for j in ..
안드로이드 layout 종류 LinearLayout RelativeLayout ConstraintLayout TableLayout GridLayout FrameLayout 기타 Layout LinearLayout 가로 또는 세로로 순차적으로 쌓아나가는 Layout android:orientation 상태 vertical : 세로 방향 horizontal : 가로 방향 예제 RelativeLayout 상대적으로 위치 지정해주는 Layout 부모 View 또는 자식 View 기준으로 위치를 지정해줄 수 있다. 예제 Constraint(제약)Layout RelativeLayout에 가중치를 추가하여 조금 더 발전된 Layout 자식 View들에 제약을 주어 부모View 기준으로 위치를 지정하거나 다른View를..
코드 n, k = map(int, input().split()) coin = [] for i in range(n): coin.append(int(input())) sum = [10001 for i in range(k+1)] sum[0] = 0 for i in coin: for j in range(i, k+1): sum[j] = min(sum[j], sum[j-i]+1) if sum[k] == 10001: print(-1) else: print(sum[k]) 동전 1과 비슷한 문제이지만 차이점은 동전의 최소 갯수를 구하는 점과 불가능한 경우엔 -1을 출력하는 것이다. 일단 sum 리스트를 초기값 10001로 초기화 해준다. i==j일 경우에는 동전을 1개만 뽑아도 되므로 sum[0]에 0을 넣어 sum[i..
문제 코드 n, k = map(int, input().split()) coin = [] for i in range(n): coin.append(int(input())) sum = [0 for i in range(k+1)] sum[0] = 1 for i in coin: for j in range(i, k+1): sum[j] += sum[j-i] print(sum[k]) 예제의 경우로 설명해보면, 동전 1만 선택했을 경우, 동전 1, 2원 중에서 선택한 경우, 동전 1, 2, 5원 중에서 선택한 경우를 차례로 구한다. sum[0]에 1을 넣어준 이유는 j원이 되는데 i원 1개만 선택해도 되는 경우를 고려한것입니다. (j == i인 경우) sum[j] += sum[j-i] 코드는 동전 i원을 뺀 값이 되는 경..