일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택
- Backtracking
- 동적계획법
- 퇴각검색
- 브루트포스
- 최단거리
- sort
- 코딩테스트
- 파이썬
- 소트인사이드
- 통계학
- 백준
- Python
- 프로그래머스
- 다익스트라
- DFS
- 백트래킹
- 소트
- 덩치
- 정렬
- 최빈값
- 그리디알고리즘
- 동적
- 스프링프레임워크
- 404에러
- 월간 코드 챌린지 시즌2
- 그리디
- 스프링
- 2중포문
- 코테
- Today
- Total
목록Python (10)
취준생의 코딩테스트 연습기
# 문제 링크 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] 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 25 26 27 28 29 30 31 32 33 34 35 def solution(n): answer = [] li = [[0]*n for i in range(n)] # n*n 리스트 생성 x=-1; y=0 # 현재 좌표 저장 num=1;..
# 문제 링크 www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net # 관련 알고리즘 이론 jiwon-coding.tistory.com/34 백트래킹 (Backtracking) # 백트래킹 (퇴각 검색) - 길을 가다가 이 길이 아닌 것 같으면 왔던 길로 되돌아가 다른 경로로 진행 - 보통 재귀로 구현하며 조건이 맞지 않으면 종료한다. - DFS(깊이 우선 탐색) 기반 # EXAMPLE - jiwon-coding.tistory.com # Soultion DFS의..
# 문제 링크 www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net # Soultion 1 2 3 4 5 6 7 8 9 10 11 n = int(input()) li = [] # 2차원리스트 for _ in range(n): xy = list(map(int,input().split())) li.append([xy[1],xy[0]]) li.sort() for i in li: print(i[1],i[0]) cs..
# 문제 링크 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net # Soultion 1 2 3 4 5 6 7 8 9 10 n = int(input()) li = [] # 2차원리스트 for _ in range(n): xy = list(map(int,input().split())) li.append(xy) li.sort() for i in li: print(i[0],i[1]) cs 3. 2차원 리스트 형태로 ..
# 문제 링크 www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net # Soultion 1 2 3 4 5 6 7 8 9 10 11 n = int(input()) li = [] for i in str(n): li.append(int(i)) # li = list(map(int,str(n))) 으로 변경가능 li.sort(reverse=True) # 내림차순 for i in li: print(i,end='') cs 8. sort함수를 이용하여 list에 들어있는 숫자들을 내림차순시킨다. 10. 정렬된 리스트를 한개씩 출력시킨다. 옵션으로 end=''를 주어..
# 문제 링크 www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net # Solution(실패) 최빈값을 구할때 Counter함수를 사용하지않고 소스를 작성하니 시간초과 문제 발생 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 n = int(input()) li = [] for _ in range(n): li.append(int(input())) # 산술평균 - 다 더해서 / ..
# 문제 링크 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net # Solution 소요시간 : 약 7분 1 2 3 4 5 6 7 8 9 10 11 12 13 # 메모리 : 28776KB # 시간 : 824ms n = int(input()) cnt=0 # 몇번째 종말의 숫자인지 체크 num = 1 while(1): if '666' in str(i): cnt+=1 if cnt==n: print(i) break num+=1 cs 7. 처음에 for문을 이용하려다..
# 문제 링크 www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net # Solution 소요시간 : 약 13분 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 메모리 : 28776KB # 시간 : 76ms n = int(input()) li = [] # 변수저장 for i in range(n): li.append(list(map(int, input().split()))) # 덩치 비교 for i in range(n): r..
# 문제 링크 programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr # 문제 링크 1 2 3 4 5 6 7 8 9 10 11 12 13 def solution(n): answer = "" while(n>=3): answer+=str(n%3) n = n//3 answer+=str(n) answ = 0 for i in range(len(answer)): answ+=int(answer[-..
# 문제 링크 www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net # Solution 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n = int(input()) for i in range(n+1): # 모든 경우의 수 확인 # 분해합 구하기 s = i for j in str(i): s += int(j) if s==n: # 생성자가 있는 경우 print(i) break if i==n: # 생성자가 없는 경우 print(0..