백준 단계별로 풀어보기 정답 모아보기 - 심화 1

25083 - 새싹

1
2
3
4
5
6
print("         ,r'\"7")
print("r`-_   ,'  ,/")
print(" \. \". L_r'")
print("   `~\\/")
print("      |")
print("      |")

3003 - 킹, 퀸, 룩, 비숍, 나이트, 폰

1
2
3
4
5
6
king, queen, rook, bishop, knight, pawn = map(int, input().split(" "))
king2, queen2, rook2, bishop2, knight2, pawn2 = 1, 1, 2, 2, 2, 8

print(
    f"{king2-king} {queen2-queen} {rook2-rook} {bishop2-bishop} {knight2-knight} {pawn2-pawn}"
)

2444 - 별 찍기 - 7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
N = int(input())
temp = N
for i in range(N):
    for x in range(N - 1):
        print(" ", end="")
    for y in range(2 * i + 1):
        print("*", end="")
    print("")
    if N != 1:
        N -= 1

for i in range(temp):
    for x in range(i + 1):
        print(" ", end="")
    for y in range(2 * temp - 3):
        print("*", end="")
    print("")
    temp -= 1
1
2
3
4
5
6
N = int(input())

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

10988 - 팰린드롬인지 확인하기

1
2
3
4
5
6
word = list(str(input()))

if list(reversed(word)) == word:
    print("1")
else:
    print("0")

1157 - 단어 공부

1
2
3
4
5
6
7
8
9
10
11
12
word = list(str(input().upper())) # 받아온 문자열을 전부 대문자로 바꾸고 리스트형에 집어넣음
filter_word = list(set(word))

cnt = []
for filter_cnt in filter_word:  # set으로 중복값을 제거한 리스트의 요소를 하나씩 꺼내옴
    count = word.count(filter_cnt)
    cnt.append(count)

if cnt.count(max(cnt)) > 1:
    print("?")
else:
    print(filter_word[cnt.index(max(cnt))])

2941 - 크로아티아 알파벳

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
croatia = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="]
string = input()
string2 = []

for _ in range(len(string)):
    for alphabet in croatia:
        if alphabet in string:
            string2.append(alphabet)
            string = string.replace(alphabet, " ", 1)
            break

string = string.split(" ")
string = "".join(string)
string = list(map(str, string))

for i in range(len(string)):
    string2.append(string[i])

print(len(string2))

1316 - 그룹 단어 체커

1
2
3
4
5
6
7
8
9
10
11
12
13
14
N = int(input())
cnt = N

for i in range(N):
    word = input()
    for j in range(len(word) - 1):
        if word[j] == word[j + 1]:
            pass
        elif word[j] in word[j + 1 :]:
            cnt -= 1
            break

print(cnt)

25206 - 너의 평점은

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
35
36
37
38
39
40
41
42
43
44
# 전공평점은 전공과목별 (score * grade)의 합을 sum(score)으로 나눈 값

subjectData = []
sumScore = 0
sumGrade = 0
sumTotal = 0
for i in range(20):
    infoData = []
    subject, score, grade = input().split(" ")

    infoData.append(subject)
    infoData.append(float(score))
    infoData.append(grade)

    subjectData.append(infoData)

    # 과목평점을 점수로 바꿔주는 코드
    if subjectData[i][2] == "A+":
        subjectData[i][2] = 4.5 * subjectData[i][1]
    elif subjectData[i][2] == "A0":
        subjectData[i][2] = 4.0 * subjectData[i][1]
    elif subjectData[i][2] == "B+":
        subjectData[i][2] = 3.5 * subjectData[i][1]
    elif subjectData[i][2] == "B0":
        subjectData[i][2] = 3.0 * subjectData[i][1]
    elif subjectData[i][2] == "C+":
        subjectData[i][2] = 2.5 * subjectData[i][1]
    elif subjectData[i][2] == "C0":
        subjectData[i][2] = 2.0 * subjectData[i][1]
    elif subjectData[i][2] == "D+":
        subjectData[i][2] = 1.5 * subjectData[i][1]
    elif subjectData[i][2] == "D0":
        subjectData[i][2] = 1.0 * subjectData[i][1]
    elif subjectData[i][2] == "F":
        subjectData[i][2] = 0.0 * subjectData[i][1]
    elif subjectData[i][2] == "P":
        subjectData[i][1] = 0
        subjectData[i][2] = 0 * subjectData[i][1]

    sumScore += subjectData[i][1]
    sumGrade += subjectData[i][2]

sumTotal = sumGrade / sumScore
print(sumTotal)

댓글남기기