일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- 404에러
- 브루트포스
- 퇴각검색
- Python
- 월간 코드 챌린지 시즌2
- 프로그래머스
- 다익스트라
- 소트
- 백준
- 파이썬
- 스프링
- 스택
- 그리디알고리즘
- 그리디
- 통계학
- 스프링프레임워크
- 최단거리
- 동적계획법
- 동적
- 소트인사이드
- 최빈값
- 코딩테스트
- 2중포문
- 정렬
- 백트래킹
- 덩치
- DFS
- sort
- Backtracking
- Today
- Total
목록전체 글 (127)
취준생의 코딩테스트 연습기
# 문제 링크 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
# 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12948 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr # Soultion 1 2 3 4 def solution(phone_number): n = len(phone_number)-4 answer = '*'*n+phone_number[-4:] return answer cs 2. 마지막 4글자를 제외한 부분을 *로 바꾸기 위해, 개수를 구한다. 3. n개만큼 *로 만들고, 뒤에서 4..
# 문제 링크 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net # Soultion 간단하게 bisect함수를 이용하여 문제를 풀었다. 1 2 3 4 5 6 7 8 9 from bisect import bisect_right, bisect_left n = int(input()) li_n = sorted(list(map(int,input().split()))) m = int(input()) li_m = list(m..
# 문제 링크 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net # Soultion 처음에 단순하게 in을 사용하여 문제를 풀었더니 시간초과가 발생했다. 따라서 이진탐색을 이용하여 문제 해결. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 시간초과 -> 이진탐색 n = int(input()) li_n = sorted(list(map(int,inp..