일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 그리디
- 다익스트라
- 스택
- Python
- 덩치
- 통계학
- 월간 코드 챌린지 시즌2
- Backtracking
- 프로그래머스
- DFS
- 정렬
- 파이썬
- 퇴각검색
- 소트
- sort
- 소트인사이드
- 코테
- 백트래킹
- 동적
- 그리디알고리즘
- 스프링
- 코딩테스트
- 최빈값
- 2중포문
- 동적계획법
- 브루트포스
- 최단거리
- 스프링프레임워크
- 404에러
- Today
- Total
목록2021/05 (47)
취준생의 코딩테스트 연습기
# 문제 링크 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[..
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr # Soultion 처음에 스택을 이용하여 문제를 풀었더니 시간초과 문제가 발생하였다. 최대값이나 최소값을 구하는 문제에는 힙큐를 사용하면 빠르게 구현이 가능하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import heapq def solution(scoville, K): answer = 0 ..
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr # Soultion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import math def solution(progresses, speeds): answer = [] for i in range(len(speeds)): if progresses[i]
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr # Soultion 2차원 리스트를 이용하여 마지막에 저장된 문자열과 같으면, 카운팅을 증가해주는 방식으로 해결했다. 주의할점은, 카운팅의 개수가 10개이상일때 18번 라인처럼 처리해줘야한다는 점이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 def solution(s): a..
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr # Soultion (실패) 정확성 테스트는 통과했지만, 효율성에서 통과하지 못했다. 1 2 3 4 5 6 7 8 9 10 def solution(s): for i in s: s = s.replace(i+i,'') if s: return 0 else: return 1 Colored by Color Scripter cs # Soultio..
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 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 def binary_num(n,num): s = '' while(num): if num%2==0: s = ' '+s else: s = '#'+s num //= 2 if len(s) 0 0인 경우에만 0이므로, or연산과 동일하다.
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr # Soultion 간단하게 b줄만큼 a개의 별을 출력하는 문제이다. 1 2 3 4 a, b = map(int, input().strip().split(' ')) for _ in range(b): print('*'*a) cs