10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net x = int(input()) a = 1 for i in range(1,x+1): a = i*a print(a) 팩토리얼의 개념은 1부터 n까지 곱한 수이다. for 루프를 사용해서 곱해준다. 이때, 주의할 것이 있는데 x가 0이나 1이라면 1을 출력해야 한다. 그렇기에 a를 먼저 1로 잡아주고, range 함수는 range(1,x+1) 이렇게 있다면 1부터 x까지만 i에 넣고, 시작과 끝이 같다면 시작 숫자 한번만 i에 넣는다. 따라서 x가 0일때 range(1,1)은 1 하나만 들어가고, x가 1일때는 range(1,2)도 1 하나만 들어간다. 팩토리얼의 개념은 ..
2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net print('\n'.join(map(str,range(1, int(input()) + 1)))) for로 출력하는 방법이 정석이긴 하다. 근데 필자는 조금 다르게 풀었다. .join(문자열) 함수는 문자열들이 주어졌을 때 합쳐서 출력해주는 함수이다. 그렇기에 range 함수를 써서 1부터 목표인 n까지 input()을 받으려면 int(input()) + 1까지를 범위로 해주어야 하고, 이걸 map 함수로 str로 바꿔 각 줄마다 출력할 수 있도록 '\n'.join 해주면 된다. 왜인진 모르겠는데 아무도 이런식으로 코딩한적이 없어서 python에선 필자가 1등을 먹은 ..
2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net x = int(input()) if(((x%4 ==0) & (x%100!=0)) | (x%400==0)): print(1) else: print(0) 간단한 수학 문제이다. (윤년은 4의 배수이면서, 100의 배수가 아닐 때) 또는 (400의 배수일 때)이다. 여기서 4의 배수일려면, x를 4로 나눈 나머지가 0이어야 한다. 마찬가지로 100의 배수일려면 100으로 나눈 나머지가 0이어야 하므로 그것만 아니면 된다. 또 400의 배수일려면 400으로 ..
14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net x = int(input()) y = int(input()) if x > 0: print(1 if y > 0 else 4) else: print(2 if y > 0 else 3) x가 0 이상일 때를 기준으로 해서 if else 문을 이중으로 써주면 된다. 문제 입력에 (0,0)은 들어가지 않으므로 써줄 수 있다. 만약 0,0이 들어간다면 elif를 한개 더 만들어서 예외처리를 해야만 한다. print("3421"[input()>"0"::2][input()>"0"]) 숏코딩으로 하면 다음과 같이 할 수도 있다. 첫번에 input에 x가 들어가고, 두번째 input에 y가 들어..