일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 그리디알고리즘
- DFS
- Python
- 스프링
- 월간 코드 챌린지 시즌2
- 동적
- 통계학
- 브루트포스
- 소트
- 최단거리
- 퇴각검색
- 코테
- 프로그래머스
- 코딩테스트
- 소트인사이드
- 정렬
- 최빈값
- 404에러
- 덩치
- Backtracking
- 백트래킹
- 파이썬
- sort
- 스택
- 동적계획법
- 그리디
- 백준
- 스프링프레임워크
- 2중포문
- 다익스트라
- Today
- Total
목록코딩테스트 (125)
취준생의 코딩테스트 연습기
# 문제 링크 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net # Soultion 처음에는 단순히 제곱근이 큰거부터 한개씩 제거했더니 문제가 발생하였다.12같은 경우는 9+1+1+1이므로 4개가 되는데, 실제로 최소값은 4+4+4이므로 모든 경우의 수를 확인해야하는 문제이다. 1 2 3 4 5 6 7 8 9 10 11 12 n = int(input()) dp = [i for i in range(n+1)] ..
# 문제 링크 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net # Soultion 처음에 dfs를 이용하여 문제를 풀었더니 recursion 에러가 발생하여 재귀깊이를 설정해주었다. 그래도 동일하게 문제가 발생하여 bfs로 풀었더니 동일한 에러가 발생하였다. 알고보니 input()을 받는과정에서 시간초과가 발생하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ..
# 문제 링크 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net # Soultion 이진탐색을 이용하여 문제해결 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 k,n= map(int, input().split()) line = [] for _ in range(k): line.append(int(input())) start = 1 end = max(line) while(start=n: #자른..
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr # Soultion 최단거리를 구하는 문제이므로 BFS를 이용하여 문제 해결. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from collections import deque def solution(maps): answer = 0 #0벽, 1..
# 문제 링크 https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net # Soultion dfs를 이용하여 2가지 케이스(W,H)로 이어진 부분의 개수를 구함 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 n,m = map(int,input()...
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr # Soultion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import math def solution(str1, str2): answer = 0 arr1 = [] arr2 = [] for i in range(0,len(str1)-1): tmp = str..
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr # Soultion BFS를 이용하여 문제를 해결하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from collections import deque def solution(n, edge): answer = 0 graph = [[]* n for _ in range(n+1)] # 각 노트와 연결된 노드표시 for a,b in edge: graph[a].append..
# 문제 링크 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net # Soultion 1 2 3 4 5 6 7 8 9 10 11 n = int(input()) arr = list(map(int,input().split())) length = [1]*n for i in range(1,n): for j in range(i-1,-1,-1): if arr[j]
# 문제 링크 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net # Soultion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n = int(input()) count = [n+1]*(n+1) count[1]=0 for i in range(2,n+1): tmp = [count[i-1]] if i%2==0: tmp.append(count[i//2]) if i%3==0: tmp.append(count[i//3]) count[i] = min(tmp)+1 print(count[n]) cs 3. 최소계산수를 저장하기 위해 n+1개의 배열을 선언 4. 숫..
# 문제 링크 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net # Soultion 점화식을 찾아 DP방법으로 해결함 현재위치(빨) = 이전위치(파)+이전위치(초) 이런 식으로 진행된다. 1 2 3 4 5 6 7 8 9 10 11 n = int(input()) li = [] for _ in range(n): li.append(list(map(int,input().split()))) for i in range(1,n): li[..