BAEKJOON (Python) 70

BAEKJOON_2798 "블랙잭" PYTHON

[백준] 2798번 Python 파이썬 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 이 문제는 brute force 알고리즘을 사용하여 푸는 문제이다. # 틀린 코드 다음 코드로 실행하였더니 아래 사진과 같이 리스트의 수들이 중복되어 더해졌다. n, m = map(int, input().split()) num = list(map(int, input().split())) rt = 0 for i in num[0:..

BAEKJOON_18870 "좌표 압축" PYTHON

[백준] 18870번 Python 파이썬 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net # 시간 초과 시간 초과와 런타임 오류가 정말 많이 난 문제였다. 시간 초과가 난 코드는 입력받은 숫자들의 인덱스를 찾아 출력하도록 하였다. 인덱스를 찾아서 출력을 하기 때문에 입력이 많을 경우 시간이 오래걸린다. # 시간 초과 코드 n = int(input()) num = list(map(int, inpu..

BAEKJOON_10814 "나이순 정렬" PYTHON

[백준] 10814번 Python 파이썬 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 이 문제는 sort 함수를 이용하여 문제를 해결하였다. 먼저 나이와 이름을 입력받아야 하는데 나이순으로 출력하고, 나이가 같다면 입력받은 순서대로 출력해야 하기 때문에 입력받은 순서도 리스트에 담아준다. 만들어진 리스트를 나이순, 입력받은 순서대로 sort 함수를 이용하여 정렬해준다. 출력은 for문을 이용하여 나이, 이름을 출력해 준다. import sys n..

BAEKJOON_1181 "단어 정렬" PYTHON

[백준] 1181번 Python 파이썬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 먼저 for문을 사용하여 words 리스트에 단어들을 담아주는데 if문을 사용하여 중복이 되는 단어는 담지 않도록 해준다. 정렬을 하기 위해 sort() 함수를 사용하는데 key 함수와 lambda 함수를 이용하여 문자열의 길이를 우선 정렬한 후, 알파벳 순으로 정렬해준다. import sys n = int(sys.stdin.readline()) ..

BAEKJOON_11651 "좌표 정렬하기 2" PYTHON

[백준] 11651번 Python 파이썬 https://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 이 문제는 11650번 문제와 같은 방식으로 풀었다. 11650번은 x좌표를 우선으로 오름차순 정렬을 해야하고, 11651번은 y좌표를 우선으로 오름차순 정렬을 하는 문제이다. sort() 함수를 사용하면 x좌표 기준으로 오름차순 정렬이 되기 때문에 sort 함수를 사용하기 전에 x좌표와 y좌표의 자..

BAEKJOON_11650 "좌표 정렬하기" PYTHON

[백준] 11650번 Python 파이썬 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 https://replit.com/new/python3 Log In Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter. repl..

BAEKJOON (Python) 2023.03.16

BAEKJOON_2108 "통계학" PYTHON

[백준] 2108번 Python 파이썬 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 이 문제는 최빈값을 구하는데 오랜 시간이 걸렸다,, 먼저 '산술평균'은 모두 더한 후 정수의 개수로 나누어서 구하고, '중앙값'은 입력받은 정수들을 리스트에 담아 sort() 함수로 오름차순 정렬을 한 후 리스트의 중앙값을 출력해 주었다. 문제에서 n은 홀수라고 가정하였기 때문에 입력받은 정수 리스트에서 정수의 합을 n으로 나눈 몫의 인덱스를 출력해 주면 된다. '최빈값'..

BAEKJOON_10989 "수 정렬하기 3" PYTHON

[백준] 10989번 Python 파이썬 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 처음엔 수 정렬하기 2와 동일한 코드로 제출했는데 'Counting Sort'라는 정렬 알고리즘을 사용하여 푸는 문제였다. 아래 유튜브를 보고 계수 정렬에 대해 공부한 후 코드를 작성하였다. https://www.youtube.com/watch?v=65Ui3RNibRA 아래의 코드로 실행했더니 메모리 초과가 떴다. import sys n = int(sys.stdin.readl..

BAEKJOON_2751 "수 정렬하기 2" PYTHON

[백준] 2751번 Python 파이썬 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net n = int(input()) num = [] for _ in range(n): a = int(input()) num.append(a) num.sort() for i in range(n): print(num[i]) Python3으로 제출하면 시간 초과가 떠서 PyPy3으로 제출하였더니 맞았다고 떴다. 혼자 공부하며 올리는 블로그입니다. 틀린 내용은..