[백준] 2475번 검증수

[백준] 2475번 검증수

출처: [백준] 2475번 검증수


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 17465 13196 11861 76.900%

문제

컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.

예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.


입력

첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.


출력

첫째 줄에 검증수를 출력한다.


예제 입력 1

1
0 4 2 5 6

예제 출력 1

1
1

힌트


출처

Olympiad > 한국정보올림피아드 > 한국정보올림피아드시․도지역본선 > 지역본선 2010 > 초등부 1번


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
import sys

input = sys.stdin.readline

lists = list(map(int, input().split()))

result = 0
for num in lists:
result += num ** 2

print(result % 10)

[백준] 9466번 텀 프로젝트

[백준] 9466번 텀 프로젝트

출처: [백준] 9466번 텀 프로젝트


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
3 초 256 MB 30631 7499 4796 24.632%

문제

이번 가을학기에 ‘문제 해결’ 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다.

학생들이(s1, s2, …, sr)이라 할 때, r=1이고 s1이 s1을 선택하는 경우나, s1이 s2를 선택하고, s2가 s3를 선택하고,…, sr-1이 sr을 선택하고, sr이 s1을 선택하는 경우에만 한 팀이 될 수 있다.

예를 들어, 한 반에 7명의 학생이 있다고 하자. 학생들을 1번부터 7번으로 표현할 때, 선택의 결과는 다음과 같다.

1 2 3 4 5 6 7
3 1 3 7 3 4 6

위의 결과를 통해 (3)과 (4, 7, 6)이 팀을 이룰 수 있다. 1, 2, 5는 어느 팀에도 속하지 않는다.

주어진 선택의 결과를 보고 어느 프로젝트 팀에도 속하지 않는 학생들의 수를 계산하는 프로그램을 작성하라.


입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫 줄에는 학생의 수가 정수 n (2 ≤ n ≤ 100,000)으로 주어진다. 각 테스트 케이스의 둘째 줄에는 선택된 학생들의 번호가 주어진다. (모든 학생들은 1부터 n까지 번호가 부여된다.)


출력

각 테스트 케이스마다 한 줄에 출력하고, 각 줄에는 프로젝트 팀에 속하지 못한 학생들의 수를 나타내면 된다.


예제 입력 1

1
2
3
4
5
2
7
3 1 3 7 3 4 6
8
1 2 3 4 5 6 7 8

예제 출력 1

1
2
3
0

힌트


출처


링크


알고리즘 분류


풀이

  • 연결 된 점이 싸이클이 되면 팀 형성…

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import sys

sys.setrecursionlimit(10**6)
input = sys.stdin.readline

test_case = int(input())


def dfs(v):
global result
team[v] = True
cycle.append(v)
num = arr[v]

if not team[num]:
dfs(num)
else:
if num in cycle:
result += cycle[cycle.index(num):]
return


for _ in range(test_case):
N = int(input())
arr = [0] + list(map(int, input().split()))
team = [True] + [False] * N
result = []

for i in range(1, N + 1):
if not team[i]:
cycle = []
dfs(i)
print(N - len(result))

[백준] 10991번 별 찍기 - 16

[백준] 10991번 별 찍기 - 16

출처: [백준] 10991번 별 찍기 - 16


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 9810 7659 7074 79.181%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
1

예제 출력 1

1
*

예제 입력 2

1
2

예제 출력 2

1
2
 *
* *

예제 입력 3

1
3

예제 출력 3

1
2
3
  *
* *
* * *

예제 입력 4

1
4

예제 출력 4

1
2
3
4
   *
* *
* * *
* * * *

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
import sys

input = sys.stdin.readline

N = int(input())

for i in range(1, N + 1):
print(' ' * (N - i), end='')
for j in range(i):
print('*', end=' ')
print()

[백준] 2523번 별 찍기 - 13

[백준] 2523번 별 찍기 - 13

출처: [백준] 2523번 별 찍기 - 13


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 21128 14779 13815 71.252%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
3

예제 출력 1

1
2
3
4
5
*
**
***
**
*

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
import sys

input = sys.stdin.readline

N = int(input())

for i in range(1, N + 1):
print('*' * i)
for i in reversed(range(1, N)):
print('*' * i)

[백준] 2522번 별 찍기 - 12

[백준] 2522번 별 찍기 - 12

출처: [백준] 2522번 별 찍기 - 12


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 11072 9348 8753 85.479%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
3

예제 출력 1

1
2
3
4
5
  *
**
***
**
*

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
import sys

input = sys.stdin.readline

N = int(input())

for i in range(1, N + 1):
print(' ' * (N - i) + '*' * i)
for i in reversed(range(1, N)):
print(' ' * (N - i) + '*' * i)

[백준] 2446번 별 찍기 - 9

[백준] 2446번 별 찍기 - 9

출처: [백준] 2446번 별 찍기 - 9


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 33081 18703 17182 57.652%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
5

예제 출력 1

1
2
3
4
5
6
7
8
9
*********
*******
*****
***
*
***
*****
*******
*********

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
import sys

input = sys.stdin.readline

N = int(input())

for i in reversed(range(1, N + 1)):
print(' ' * (N - i) + "*" * (2 * i - 1))

for i in range(2, N + 1):
print(' ' * (N - i) + "*" * (2 * i - 1))

[백준] 2444번 별 찍기 - 7

[백준] 2444번 별 찍기 - 7

출처: [백준] 2444번 별 찍기 - 7


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 18668 13189 12075 72.992%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
5

예제 출력 1

1
2
3
4
5
6
7
8
9
    *
***
*****
*******
*********
*******
*****
***
*

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
import sys

input = sys.stdin.readline

N = int(input())

for i in range(1, N + 1):
print(' ' * (N - i) + '*' * (2 * i - 1))

for i in reversed(range(1, N)):
print(' ' * (N - i) + '*' * (2 * i - 1))

[백준] 2445번 별 찍기 - 8

[백준] 2445번 별 찍기 - 8

출처: [백준] 2445번 별 찍기 - 8


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 18262 13350 12206 73.846%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
5

예제 출력 1

1
2
3
4
5
6
7
8
9
*        *
** **
*** ***
**** ****
**********
**** ****
*** ***
** **
* *

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
import sys

input = sys.stdin.readline

N = int(input())

for i in reversed(range(1, N)):
print('*' * (N - i) + ' ' * (2 * i) + '*' * (N - i))

for i in range(N):
print('*' * (N - i) + ' ' * (2 * i) + '*' * (N - i))

[백준] 2443번 별 찍기 - 6

[백준] 2443번 별 찍기 - 6

출처: [백준] 2443번 별 찍기 - 6


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 16915 12444 11585 75.174%

문제

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, …, N번째 줄에는 별 1개를 찍는 문제

별은 가운데를 기준으로 대칭이어야 한다.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
5

예제 출력 1

1
2
3
4
5
*********
*******
*****
***
*

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
import sys

input = sys.stdin.readline

N = int(input())

for i in reversed(range(1, N + 1)):
print(' ' * (N - i) + '*' * (2 * i - 1))

[백준] 2442번 별 찍기 - 5

[백준] 2442번 별 찍기 - 5

출처: [백준] 2442번 별 찍기 - 5


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 31653 17941 16137 57.227%

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, …, N번째 줄에는 별 2×N-1개를 찍는 문제

별은 가운데를 기준으로 대칭이어야 한다.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.


예제 입력 1

1
5

예제 출력 1

1
2
3
4
5
    *
***
*****
*******
*********

힌트


출처


알고리즘 분류


시간 제한


풀이


소스코드

1
2
3
4
5
6
7
8
9
import sys

input = sys.stdin.readline

N = int(input())

for i in range(1, N + 1):
print(' ' * (N - i) + '*' * (2 * i - 1))