알고리즘 16

[백준] 4344. 평균은 넘겠지

4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 이 문제에서 배운 것은 round() 함수가 소수점이 0일 경우에는 자릿수만큼 출력을 안해주고, 그냥 생략해버린다는 것이다. 그래서 특정 소수점 자리수만큼 출력하고 싶다면 {:.3f} 이런 식으로 .format() 함수의 변수 위치에 자릿수를 표기해주는 것이 좋다. 그러면 소수점 뒷 자리가 모두 0이더라도 적어둔 숫자만큼 자릿수를 표기한다. # 4344 평균은 넘겠지 C = int(input()) for tc in range(1, C+1): # 우선 들어오는 숫자들을 리스트로 저장. arr = list(map(int, input().spl..

[백준] 10871. X보다 작은 수

10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net # 10871 X보다 작은 수 import sys N, X = map(int, sys.stdin.readline().rstrip().split()) arr = list(map(int, sys.stdin.readline().rstrip().split())) for i in arr: if i < X: print(i, end=' ') 평소에 input().split()으로 받던 걸 sys.stdin.readline().rstrip().split()으로 ..

[백준] 2480. 주사위 세개

2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net # 2480 주사위 세개 a, b, c = map(int, input().split()) max_num = 0 # case 1 세개 같은 것 나오면 10000+(같은눈)*1000원 if a == b and b == c: print(10000 + a*1000 ) # case 2 같은 눈 2개만 나오면 1000 + 같은 눈 * 100 elif a == b or a == c: print(1000 + a*100) elif b == c: print(1000..

[백준] 2588. 곱셈

2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. 정답: n = int(input()) m = input() sum = 0 for i in range(2, -1, -1): num = int(m[i]) * n print(num) sum += num * (10 ** (2-i)) print(sum) 처음에 별 생각 없이 10으로 계속 나눠서 100의 자리 숫자부터 1의 자리 숫자 순으로 출력했는데, 1의 자리..

[백준] 10171. 고양이

아래 예제와 같이 고양이를 출력하시오 \ /\ ) ( ') ( / ) \(__)| print() 함수로 문자열을 출력할 때 \ ' " 같은 애들을 어떻게 출력해야 할지 알려주는 귀여운 문제. 정답은 아래처럼 작성했다. print('''\ /\\ ) ( \') ( / ) \(__)|''') print() 에서 여러 줄을 쓸 때는 ''' ''' 혹은 """ """ 를 사용한다. print()에서 \을 문자열로 출력하고 싶다면 \\ 이렇게 두 개를 써준다. print()에서 ', "을 출력하고 싶다면 앞에 \을 붙여 \' , \" 이런 식으로 써주면 된다.

[알고리즘 공부] 1. 시간, 공간 복잡도

1) 시간, 공간 복잡도 공간적 효율성 : 연산량 대비 얼마나 적은 메모리 공간을 요하는가. 시간적 효율성: 연산량 대비 얼마나 적은 시간을 요하는가. 효율성을 뒤집어 표현하면 복잡도가 되며, 이 복잡도가 높을수록 효율성은 낮아진다. 복잡도의 점근적 표기 이전에 재귀식에선 T(n)으로 표시했으나, 주로 Big-Oh 표기법 사용(예: O(n)) 1) 빅 오 표기 빅 오 표기는 복잡도의 점근적 상환이다. 가령 2a² + 2a + 2 라고 수식이 나올 경우, 상수를 빼고 O(n²)로 표기. f(n) = n²+n이고 g(n) = n³일때 f(n) = O(g(n))으로 나타낼 수 있음. f(n)의 차수가 g(n)의 차수보다 같거나 작다는 뜻. 예시) n^100 = O(2^n)은 참임. n이 충분히 크다고 가정했을..