[BOJ][Python] 10815 숫자 카드
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net [코드] 1. set 함수 사용 import sys input = sys.stdin.readline n = int(input()) sang = set(map(int,input().split())) m = int(input()) x = list(map(int,input().split())) for i in x: if i in sang: print(1, end=..
[BOJ][Python] 18870 좌표 압축
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net [코드] 0. 아이디어 - 처음에는 중복 제거만 해주고, 원소가 중복 제거된 리스트에서 값을 비교해서 크면 +1 해주는 브루트포스 알고리즘으로 풀었다. -> 시간초과 - 오름차순으로 정렬해주면 인덱스 값을 출력해주면 된다. -> 인덱스 함수 시간초과 - 딕셔너리 사용해서 인덱스 값을 출력 1. 시간 초과 난 코드 - 알고보니 index ..
[BOJ][Python] 24313 알고리즘 수업 - 점근적 표기 1
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/24313 24313번: 알고리즘 수업 - 점근적 표기 1 f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다. www.acmicpc.net [코드] 1. 직관적으로 n0 보다 큰 n 값들이 모두 식을 만족하는지 확인하는 방법 - n0 의 범위가 100으로 정해져있어서 가능했다. a1, a0 = map(int,input().split()) c = int(input()) n0 = int(input()) while n0
[BOJ][Python] 1934 최소공배수
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net [코드] 최소공배수 구하는 방법: 두 수의 곱 / 최대공약수 [라이브러리 안 쓰고 푼 코드] T = int(input()) for i in range(T): a, b = map(int,input().split()) gcd = [] for j in range(1,min(a,b)+1): if a % j == 0 and b % j == 0: gcd.append(j) prin..
[BOJ][Python] 10814 나이순 정렬
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net [코드] 조건: 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬 import sys input = sys.stdin.readline n = int(input()) arr = [] for i in range(n): age, name = input().split() arr.append((int(age),i,name)) #입력 받는 순서도 함께 배열에 추가..
[BOJ][Python] 1427 소트인사이드
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net [코드] [내림차순으로 정렬] arr.sort(reverse=True) [최종코드] arr = list(map(int,input())) arr.sort(reverse=True) for i in arr: print(i,end='') - end = '' : 출력값을 이어서 출력, 줄바꿈을 하지 않음
[BOJ][Python] 11650 좌표 정렬하기
·
🚩 Coding Test/Baekjoon
[문제] 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 [코드] [정렬] #좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬 arr = sorted(arr, key = lambda x: (x[0], x[1])) - arr = [[3, 4], [1, 1], [1, -1], [2, 2], [3, 3]] - sorted(배열명, key = lambda x: (x[0..
[BOJ][Python] 25305 커트라인
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net [코드] n, k = map(int,input().split()) arr = list(map(int,input().split())) arr.sort() print(arr[n-k])
[BOJ][Python] 2587 대표값2
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net [코드] sort() 함수 사용하면 간단하게 풀이 가능 arr = [] for i in range(5): arr.append(int(input())) arr.sort() print(sum(arr)//len(arr)) print(arr[2])
[BOJ][Python] 1436 영화감독 숌
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net [코드] num 을 하나씩 올려주며 num을 문자열로 바꾸었을 때 '666' 문자가 있는지 확인한다. 있으면 cnt도 하나씩 올려준다. cnt와 입력받은 n이 같으면 num을 출력한다. n = int(input()) num, cnt = 666, 0 while True: if '666' in str(num): cnt += 1 if cnt == n: print(num) break num +..