본문 바로가기

🔅코딩테스트 공부🔅213

[백준] 18870번 좌표 압축(with python) https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 1. 내가 작성한 코드 import sys n = int(sys.stdin.readline()) arr = list(map(int,sys.stdin.readline().split())) num = sorted(set(arr)) for i in arr: print(num.index(i), end=' ') set 함수를 이용해 arr의 중복을 제거한 .. 2023. 1. 25.
[백준] 7568번 덩치(with python) https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) w = [] h = [] for i in range(n): a,b = input().split() w.append(int(a)) h.append(int(b)) for i in range(n): cnt = n+1 for j in range(n): if w[i] >= w[j] or h[i] >= h[j]: cnt-=1 print(cnt.. 2023. 1. 22.
[백준] 2292번 벌집(with python) https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 1. 내가 작성한 코드 a = int(input()) num = 0 arr = [] for i in range(1,a+1): if i == 1: arr.append(1) elif i in [2,3,4,5,6,7]: arr.append(2) else: for i in range(2,a): if len(arr) >= a: break num += 6 * i for j in range(num, (num+6*i)).. 2023. 1. 22.
[수학] 에라토스테네스의 체(with python) 백준 1978번 솔루션을 구글링해보니 '에라토스테네스의 체'를 이용한 풀이가 종종 보였다. 참고 링크 :https://gururuglasses.tistory.com/80 [ Algorithm ] 에라토스테네스의 체 ( Python )( 소수를 구하는 방법) 고대 수학자 에라토스테네스가 만들어 낸 소수를 찾는 방법이다. 이 방법은 체로 치듯이 수를 걸러낸다고 해서 '에라토스테네스의 체' 라고 불린다.소수를 구하는 방법은 여러가지가 존재하지 gururuglasses.tistory.com 에라토스테네스의 체? O(NloglogN)의 시간복잡도를 이용해 소수를 찾는 방법으로 2부터 N까지의 모든 소수를 찾는 방법이다. 다수의 소수를 찾을 때 유용하나 메모리가 많이 필요하다는 단점이 있다. 따라서 n이 1,000.. 2023. 1. 21.
[백준] 2798번 블랙잭(with python) https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 1. 내가 작성한 코드 n,m = map(int, input().split()) num = list(map(int, input().split())) result = [] for i in range(n): arr = [] arr.append(num[i]) for j in range(i+1,n): arr.append(num[j]) arr = [num[1]] for h .. 2023. 1. 21.
[백준] 2941번 크로아티아 알파벳(with python) https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 1. 내가 작성한 코드 word = input() cnt = 0 for i in range(len(word)): if i == 0: pass else: if word[i] in ['=']: if (word[i-1] in ['c','s']): cnt += 1 elif (word[i-1] == 'z') and (word[i-2] != 'd'): cnt += 1 e.. 2023. 1. 21.
[백준] 5622번 다이얼(with python) https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 1. 내가 작성한 코드 word = list(input()) #문자입력 sum = 0 for i in word: if i in ['A','B','C']: sum += 3 elif i in ['D','E','F']: sum += 4 elif i in ['G','H','I']: sum += 5 elif i in ['J','K','L']: sum += 6 elif i in ['M','N','O']: sum += 7 elif i in ['P','Q','R','S']: sum += 8 el.. 2023. 1. 21.
[백준] 1978번 소수 찾기(with python) https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) cnt = 0 num = list(map(int, input().split())) rmv_list=[] arr = list(range(1,1001)) for i in range(2,1001): for j in range(2,1001): if i*j 2023. 1. 21.
[백준] 1789번 수들의 합(with python) https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) #자연수의 합 sum = 0 for i in range(1,n+1): sum += i if sum == n: print(i) break elif sum > n: print(i-1) break range의 범위를 1부터 n까지로 잡고 풀었더니 97%에서 계속 오류가 났다😥 왜 그럴까 고민을 해보니 n이 '1 or 2'일경우 출력이 되는 조건이 없던 것,, 수정해서 맞긴 했는데, 우리가 아는 공식을 이용하는 아주 수ㅣ운 풀이가 있었다. 2. 다른 풀이 s = int.. 2023. 1. 21.