본문 바로가기

코딩테스트57

코딩테스트 준비 - 백준11650번 좌표 정렬하기 풀이(간단한 풀이):파이썬 튜플 괄호 없애기 (파이썬) 백준 11650번 풀이 문제풀러가기 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제 풀이 1. x좌표가 작은것 부터 출력한다. 2. x좌표가 같을 시 y좌표를 비교해 y좌표가 더 작은 것을 먼저 출력한다. 코드1 import sys N = int(sys.stdin.readline()) arr = [] for i in range (N): arr.append(tuple(map(int,sys.. 2021. 6. 3.
코딩테스트 준비 - 백준1427번 풀이:파이썬 숫자 정렬(파이썬) 백준 1427번 풀이 문제 풀러 가기 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 풀이 1. int를 string 형으로 바꿔야지 정렬이 가능. 2. 리스트 정렬 및 거꾸로 출력 코드 import sys N = int(sys.stdin.readline()) arr = [] for i in str(N): arr.append(i) arr.sort(reverse=True) print("".join(arr)) 코딩 테스트 문제를 풀 때는 되도록 input보다는 sys.stdin.readline을 쓰려고 합니다. 도움이 됐다면 하트.. 2021. 6. 3.
코딩테스트 준비 - 백준2108번 풀이/파이썬 반올림, 원소 개수 구하기(파이썬) 백준 2108번 풀이 문제풀러가기 https://www.acmicpc.net/problem/2108 문제 풀이 1. 산술평균: round()함수 활용 더보기 round() 반올림 함수 ex1) round(3.6) = 4 ex2) round(3,2) = 3 ex3) round(3.425, 1) = 3.4 ex4) round(4.1729, 3) = 4.173 2. 중앙값: // = cnt: cnt = a for i in range(N): a = arr.count(arr[i]) if a == cnt: arr_min.append(arr[i]) arr_min = list(set(arr_min)) #리스트 중복 제거 arr_min.sort() if len(arr_min) == 1: #리스트에 숫자가 하나밖에 없다면.. 2021. 6. 1.
코딩테스트 준비 - 백준10989번 정렬3 풀이 (파이썬) 백준 10989번 풀이 문제풀러가기 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 1. 시간과 메모리 제한 유의 2.주어진 문제에서 제한한 메모리가 매우 낮다.그러므로 pypy3보다 python3로 사용할 것. (pypy3보다 python3가 시간상 더 빠르게 동작, 하지만 메모리 사용량이 python3 보다 많음 ) 3. N의 범위가 정해져 있다. 1~10000까지 코드 - 시간 초과 코드:실패 import sys N = int(sys.stdin.rea.. 2021. 5. 31.
코딩테스트 준비 - 백준1018번 체스판 풀이(파이썬) 백준 1018번 풀이 문제풀러가기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 1. 8*8칸씩 범위를 잡고 다시 칠해야 되는 부분의 갯수를 구한다. 1-1 경우의 수 1) N과 M이 8보다 클때 -> 인덱스를 1씩 더해, 8*8사각형을 옮겨 가며 갯수를 구해주면 된다. 더보기 예를 들어, M=9인 경우 처음에는 0~7까지 다시칠해야 되는 갯수를 구한다. 그 다음 1을 더해주어 1~8까지 다시 칠해야 되는 갯수를 구한다. 그 다음.. 2021. 5. 28.
코딩테스트 준비- 백준 2751번:병합정렬,리스트 정렬 예제(파이썬) 문제풀러가기 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 두 방법 다 python3가아닌 pypy3로 풀어야 될 것. (python3로 하면 시간초과가 뜹니다.) 1번 방법: sort 사용 2번 방법: merge sort(병합정렬) 사용 방법 1) sort 리스트 정렬 N = int(input()) arr = [] for i in range(N): arr.append(int(input())) arr.sort() for i .. 2021. 5. 27.