https://www.acmicpc.net/problem/25314

 

 

 

 

# 문제 정리

 

 


# 문제 해결을 위한 개념

< 파이썬 반복문에서 언더바 ( _ ) 사용 >

for _ in range

반복문을 수행하되, 변수 값이 필요 없을 때 언더바를 사용할 수 있다. 

for _ in range(5):
    print("Hello World")
Hello World
Hello World
Hello World
Hello World
Hello World

 

 


# 정답 코드

for _ in range(int(input())//4):
    print('long', end=' ')
print('int')

 

'코딩테스트 > 백준' 카테고리의 다른 글

백준 10807 개수 세기 [Python]  (0) 2024.10.28
백준 2439 별 찍기-2 [Python]  (0) 2024.10.28
백준 25304번 영수증 [Python]  (0) 2024.10.27
백준 8393 합 [Python]  (0) 2024.10.27
백준 2525 오븐시계 [Python]  (0) 2024.10.27

https://www.acmicpc.net/problem/25304

 

 

 

 

 

# 문제 정리

 

 


# 문제 해결을 위한 개념

 

 


# 정답 코드

x = int(input())
n = int(input())
sum = 0
for i in range(1, n+1):
    a,b = map(int, input().split())
    sum += a*b

if x == sum:
     print('Yes')
else:
    print('No')

https://www.acmicpc.net/problem/8393

 

 

 

 

# 문제 정리

 

 


# 문제 해결을 위한 개념

 

 


# 정답 코드

n = int(input())
total = 0
for i in range(1, n+1):
    total += i
print(total)

 

https://www.acmicpc.net/problem/2525

 

 

 

 

 

# 문제 정리

 

 


# 문제 해결을 위한 개념

a = 15
b = 6

print('a/b = ', a/b)   # 나눗셈
print('a//b = ', a//b)   # 몫
print('a%b = ', a%b)   # 나머지
a/b =  2.5
a//b =  2
a%b =  3

 

 

 


# 정답 코드

h, m = map(int, input().split())
c = int(input())
h += c // 60
m += c % 60

if(m >= 60):
    m -= 60
    h += 1
if(h >= 24):
    h -= 24

print(h, m)

https://www.acmicpc.net/problem/2884

 

 

 

 

# 문제 정리

h 의 범위는  0 - 23, m 의 범위는  0 - 59 이다.

 

 


# 문제 해결을 위한 개념

 

 

 

# 정답 코드

h, m = map(int, input().split())
if m < 45:
    if h == 0:
        h = 23
        print(h, m+15)
    else:
        print(h-1, m+15)
else:
    print(h,m-45)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PyTLqAf4DFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

# 문제 정리

'level'과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 화문이라 한다.

단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램 작성하기

각 단어의 길이는 3 이상 10이하 이다.

가장 첫 줄에는 테스트 케이스의 개수 t가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에 하나의 단어가 주어진다.

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다

 

 

 


# 문제 해결을 위한 개념

 

w[::-1]은 값을 뒤집는다

  

 

위 그림과 같이 1부터 8까지 여덟 개의 숫자를 포함하는 하나의 리스트가 있다고 가정하자.

 

start를 입력하지 않으면 0을 입력한 것과 같다.

stop을 입력하지 않으면 리스트 길이(len(my_list))를 입력한 것과 같다.

step을 입력하지 않으면 1을 입력한 것과 같다.0-

 

 

 

 

 

 

 

 

 


# 정답 코드

t = int(input())
for test_case in range(1, t+1):
    str = input()
    if str == str[::-1]:
        print(f'#{test_case} 1')
    else:
        print(f'#{test_case} 0')

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PxmBqAe8DFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

 

# 문제 정리

1부터 n까지의 숫자에서 홀수는 더하고 짝수는 뺐을 떄 최종 누적된 값을 구하기

예를들어, n이 1일 경우

1-2+3-4+5=3

n은 1이상 10이하의 정수이다.

가장 첫 줄에는 테스트 케이스의 개수 t가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 

각 테스트 케이스에는 n이 주어진다.

각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 누적된 값을 출력한다.

 

 


# 문제 해결을 위한 개념

 

 

 


# 정답 코드

n = int(input())
for test_case in range(1, n+1):
    n = int(input())
    total = 0
    for i in range(1, n+1):
        if i % 2 == 0:
            total -= i
        else:
            total += i
    print(f'#{test_case} {total}')

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QPRjqA10DFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

# 문제 정리

 

하나의 자연수를 입력 받아 각 자릿수의 합을 계산하는 프로그램 작성

자연수 n은 1부터 9999까지의 자연수이다. 

각 자릿수의 합을 출력한다.

 

 

 


# 문제 해결을 위한 개념

 

< split() > 

문자열을 특정 구분자(delimiter)를 기준으로 분할하여 리스트로 반환하는 매서드

기본적으로 구분자는 공백(space), 탭(tab), 개행(newline) 등의 공백문자이다.

split() 매서드를 사용하여 문자열을 분활하면 분할된 각 부분이 리스트의 요소로 들어간다.

 

 

1.  문자열.split()

문자열을 일정한 규칙으로 잘라서 리스트로 만들어주는 함수

 

2.  문자열.split('구분자')

 

3.  문자열.split('구분자', 분활횟수)

 

4.  문자열.split(sep='구분자', maxsplit=분활횟수)

 

 

 

 

 

# 정답 코드

n = list(map(int, input()))
print(sum(n))
6789
30

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

# 문제 정리

369 게임을 프로그램 제작. 게임 규칙은 다음과 같다.

1. 숫자 1부터 순서대로 차례대로 말하되, '3', '6', '9'가 들어가 있는 수는 말하지 않는다.

 

2. '3', '6', '9'가 들어가 있는 수를 말하지 않는 대신, 박수를 친다. 이 때 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.

예를 들어 숫자 35의 경우 박수 한번, 숫자 36의 경우 박수를 두번 처야 한다.

 

박수를 치는 부분은 숫자 대신, 박수 횟수에 맞게 '-'를 출력한다.

여기서 주의해야 할 것은 박수 한번 칠 때는 -이며, 박수 두 번 칠 때는 - -가 아닌 --이다.

 

 

 


# 문제 해결을 위한 개념

< count >

문자열 내부에 특정 문자가 등장하는 횟수를 알려준다.

대소문자를 구분하고, 해당 문자열이 없을 경우 0을 반환한다.

예를들어 1,3 이라면 count = 1, 136 일 때, count = 2 이다.

예를들어 str.count('i') 는 str 문자열에 'i' 라는 문자가 등장하는 횟수를 세어준다.

 

1.  문자열.count(a)

문자열 전 범위에서 a가 등장하는 횟수를 반환하는 매서드

 

2. 문자열.count(a, start)

문자열 start index 부분에서부터 시작해서 문자열 끝까지 a가 등장하는 횟수를 반환하는 매서드

 

3. 문자열.count(a, start, end)

문자열 start index 부분에서 end index 부분까지의 부분 문자열에서 a가 등장하는 횟수를 반환하는 매서

 

 

 

 

 

# 정답 코드

N = int(input())
for i in range(1,N+1):
    clap = str(i).count('3') + str(i).count('6') + str(i).count('9')
    if not clap:
        print(i,end=' ')
    else:
        print('-'*clap,end=' ')

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5P1kNKAl8DFAUq&categoryId=AV5P1kNKAl8DFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

# 문제 정리

패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력받아 마디의 길이를 출력하는 프로그램을 작성하라

각 문자열의 길이는 30마디이다. 마디의 최대 길이는 10이다.

가장 첫줄에는 테스트 게이스의 개수와 t가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

 

 

# 문제 해결을 위한 개념

 

< 집합 데이터 타입 >

list [ ] 순서 있음 종복 허용 mutable
tuple 순서 있음 중복 허용 immutable
set 순서 없음 정복 허용 안함  
dict 순서 없음   key와 value 쌍으로 구성

 

 

< 리스트 슬라이싱 >

[:]   처음부터 끝까지 

s[a:b]   a부터 b-1까지

s[a:b:c]   a부터 b-1까지 c간격  

s[0:  :1]   s문자열 전체

s[:]   s문자열 전체

s{-1:  :-1]   s문자열 거꾸로 전체

s[: end]   0(처음)부터 end-1까지 

s[start :]   0(처음)부터 끝까지

s[start:len]   [start:아주 큰 값] 

 

 

< break >

반복문을 중단하고 싶을 때 사용한다

반복문 하나만 빠져나온다. 다중 반복문의 경우 전부 다 나오는게 아닌 가까운 반복문에서만 나온다. 

for i in range(1,6):
    if i == 3:
        break
    print(i)
1
2

 

 

 

 

 

 

# 정답 코드

t = int(input())
for test_case in range(1, t+1):
    s = input()
    for i in range(1, 10):
        if s[:i] == s[i:2*i]:
            print(f"#{test_case} {i}")
            break

+ Recent posts