본문 바로가기

코딩테스트/Python

(225)
[Python] 백준 #1427 - 소드인사이드 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 print(''.join(sorted(list(input()),reverse=True))) 수를 거꾸로 정렬하면된다. 1. input()으로 문자열 형태로 받아주었다. 2. list로 만들어주었다. 3. sorted로 reverse=True를 사용하여 역순으로 정렬해주었다. 4. ''.join으로 리스트를 공백없이 연결해주었다.
[Python] 백준 #10989 - 수 정렬하기 3 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 import sys c = [0]*10000 n = int(sys.stdin.readline()) for _ in range(n): c[int(sys.stdin.readline())-1] +=1 for i in range(10000): if c[i]>=0: for j in range(c[i]): print(i+1) 진짜 문제가.. 휴 .. 메모리 초과 너무 싫다!!!! 결국 인터넷 행 ㅠ 배열을 만들어서 풀었다..
[Python] 백준 #2751 - 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 import sys input=sys.stdin.readline n = int(input()) arr = [int(input()) for _ in range(n)] for i in sorted(arr): print(i) [Python] 백준 #2750 - 수 정렬하기 이 문제에서 시간만 줄어든 문제이다. 시간을 줄이기 위해서 sys.stdin.readline을 사용하였다.
[Python] 백준 #2750 - 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 n = int(input()) arr = [int(input()) for _ in range(n)] print('\n'.join(map(str,sorted(arr)))) 입력받은 수들로 arr을 만들어주고 sorted를 사용하여 정렬한 다음에 str로 문자열을 만들어주었다. 그리고 ' \n'.join으로 문자열을 한줄씩 띄어서 출력되도록 하였다.
[Python] 백준 #1436- 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 풀이 n = int(input()) i=0 cnt=0 while True: if "666" in str(i): cnt+=1 if cnt==n: break i+=1 print(i) 666이 들어있는 숫자를 찾아야한다. 이렇게 숫자안에서 특정 수를 찾는 문제는 문자열로 바꿔서 풀면 쉽다. i를 계속 더해가면서 666이 들어있는 숫자를 찾아서 n번째 숫자를 출력해주었다.
[Python] 백준 #1018- 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 import sys input = sys.stdin.readline N,M = map(int,input().split()) arr = [list(input()[:-1]) for _ in range(N)] color=['W','B'] arr_w=[[0 for i in range(M)] for j in range(N)] arr_b=[[0 for i in range(M)] for j in ..
[Python] 백준 #7568 - 덩치 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 풀이 import sys input = sys.stdin.readline n = int(input()) arr = [list(map(int,input().split())) for i in range(n)] for w,h in arr: cnt=0 for tmp_w,tmp_h in arr: if tmp_w > w and tmp_h > h: cnt+=1 print(cnt+1,end=" ")..
[Python] 백준 #2231 - 분해합 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 풀이 n = int(input()) cnt=0 while True: cnt+=1 if sum(list(map(int,str(cnt))))+cnt == n: print(cnt) break if cnt==n: print(0) break cnt를 1부터 n까지 돌리면서 모든 경우의 수를 구해야한다. cnt의 모든 자리수의 합 + cnt 를 구해야하기때문에 cnt를 먼저 문자..