https://www.acmicpc.net/problem/25083
25083번: 새싹
아래 예제와 같이 새싹을 출력하시오.
www.acmicpc.net
print(' ,r\'\"7')
print('r`-_ ,\' ,/')
print(' \. \". L_r\'')
print(' `~\/')
print(' |')
print(' |')
https://www.acmicpc.net/problem/3003
3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
www.acmicpc.net
chess = [1, 1, 2, 2, 2, 8]
n_list = list(map(int, input().split()))
for i in range(len(chess)):
chess[i] -= n_list[i]
print(chess[i], end=' ')
https://www.acmicpc.net/problem/2444
2444번: 별 찍기 - 7
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
n = int(input())
for i in range(1, n):
print(' '*(n-i) + '*'*(2*i-1))
for i in range(n, 0, -1):
print(' '*(n-i) + '*'*(2*i-1))
https://www.acmicpc.net/problem/10812
10812번: 바구니 순서 바꾸기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2
www.acmicpc.net
n, m = map(int, input().split())
b_list = [i for i in range(1, n+1)]
for i in range(m):
i, j, k = map(int, input().split())
b_list = b_list[:i-1]+b_list[k-1:j]+b_list[i-1:k-1]+b_list[j:]
for b in b_list:
print(b, end=" ")
https://www.acmicpc.net/problem/10988
10988번: 팰린드롬인지 확인하기
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
www.acmicpc.net
s = input()
// 삼항연산자를 이용해서 입력받은 단어와 슬라이싱을 통해서 뒤집은 단어가 같은지를 비교
print(1) if s == s[::-1] else print(0)
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
s = input().upper() // 입력받은 단어를 전부 다 대문자로 변환
// set 함수를 이용해서 대문자로 변환된 단어 중 중복되는 알파벳을 제거한 리스트
s_list = list(set(s))
cnt_list = [] // 빈 리스트
// 중복 제거 된 알파벳 리스트 안에 요소들이 입력받은 단어 안에 몇 개씩 있는지 개수를 파악
for idx in s_list:
cnt_list.append(s.count(idx)) // 빈 리스트에 개수 넣기
// 가장 많이 사용된 알파벳을 알아내는데, 여러 개 존재하는 경우에는 ?를 출력
if cnt_list.count(max(cnt_list)) > 1:
print("?")
else: // 가장 많이 사용된 알파벳이 하나일 때
cnt = cnt_list.index(max(cnt_list)) // 개수 리스트에서 가장 큰 개수의 인덱스를 cnt에 초기화
// s_list의 알파벳과 cnt_list의 개수의 위치는 같으므로 가장 많이 사용된 알파벳 출력
print(s_list[cnt])
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
c = int(input())
for i in range(c):
stu = list(map(int, input().split()))
avr = (sum(stu) - stu[0]) / stu[0]
cnt = 0
for j in range(1, len(stu)):
if stu[j] > avr:
cnt += 1
score = cnt / stu[0] * 100
print(f'{score:.3f}%')
https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
alphabet = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] // 크로아티아 알파벳
s = input() // 입력받은 단어
for i in alphabet:
s = s.replace(i, '*') // replace 함수를 통해서 크로아티아 알파벳이 s안에 있으면 *로 대체
print(len(s)) // 대체된 단어의 길이 출력
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
n = int(input())
for _ in range(n):
s = input()
s_list = [s[0]]
cnt = 0
for i in range(1, len(s)):
if s[i] not in s_list and s[i] != s[i-1]:
s_list.append(s[i])
elif s[i] == s[i-1]:
continue
else:
cnt += 1
if cnt > 0:
n -= 1
print(n)
https://www.acmicpc.net/problem/25206
25206번: 너의 평점은
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치
www.acmicpc.net
rank_dict = {"A+": 4.5, "A0": 4.0, "B+": 3.5, "B0": 3.0, "C+": 2.5, "C0": 2.0, "D+": 1.5, "D0": 1.0, "F": 0.0}
scores = 0
res = 0
for _ in range(20):
sub, grade, rank = input().split()
grade = float(grade)
if rank == 'P':
continue
scores += grade
res += grade * rank_dict[rank]
print('%.6f' % (res / scores))
'Algorithm > Step by Step' 카테고리의 다른 글
[단계별로 풀어보기] 2차원 배열 (1) | 2023.05.28 |
---|---|
[단계별로 풀어보기] 반복문 (0) | 2023.03.05 |
[단계별로 풀어보기] 조건문 (0) | 2023.03.05 |
[단계별로 풀어보기 1단계] 입출력과 사칙연산 (0) | 2023.03.05 |