[5문제] 완전 탐색 문제풀이 02

m1njae·2022년 1월 22일
0

5문제

목록 보기
9/14
post-thumbnail

백준 6131번

해결 아이디어

문제에서 요구하는 조건을 그대로 구현해주면 되는 문제였다.

내가 작성한 코드

n = int(input())
count = 0
for b in range(1,500):
    for a in range(1,500):
        if a**2 == b**2 + n:
            count+=1
print(count)

백준 2858번

해결 아이디어

빨간색 타일 수는 갈색 타일을 감싸는 형태이기 때문에 갈색 타일이 어떤 형태로 방을 채우고있는지가 중요하다. 빨간색 타일의 수는 4 + 2(갈색타일의 가로길이 + 갈색타일의 세로길이)이기 때문이다. 완전 탐색을 하면서 갈색타일이 나누어 떨어지는 수를 찾은 후 가로, 세로 길이를 지정했다. 그 후, 빨간색 타일 개수와 대조시켜서 방의 크기를 구하도록 하였다.

내가 작성한 코드

r, b = map(int,input().split(' '))
w, h = 0, 0

for i in range(1,b+1):
    if b % i == 0:
        result = 4 + 2*((b//i)+i)
        if result == r:
            w = (b//i)+2
            h = i+2
            break
if w >= h:
    L = w
    W = h
else:
    L = h
    W = w
print('{} {}'.format(L,W))

백준 18312번

해결 아이디어

이동하면 지점의 위치는 각각 p1+(n*x),p2+(n*y) 점화식의 형태이다. 공통적으로 지나는 지점 중 가장 가까운 지점은 min()함수로 출력해준다. 반복문을 돌렸을 때, 시간초과임을 확인하고 최대 케이스를 지정해서 문제를 해결하였다.

내가 작성한 코드

x,y,p1,p2 = map(int,input().split())

a = [p1]
b = [p2]
count = 0

while True:
    
    p1 += x
    p2 += y
    
    a.append(p1)
    b.append(p2)
    
    if p1 in b or p2 in a:
        p = min(p1,p2)
        break
    elif count > 1000:
        p = -1
        break
    count +=1

print(p)

백준 2386번

해결 아이디어

입력 줄에 대문자와 소문자를 구분해놓았지만 모두 세어야하기 때문에, 문자의 형태를 통일시켜줄 필요가 있었다. 하나의 소문자로 입력이 주어지므로 영어문장을 모두 소문자로 통일시켜서 개수를 세었다.

내가 작성한 코드

while True:
    word= input()
    alphabet = word[0]
    
    if  alphabet== '#':
        break
    
    word = word[2:].lower()
    count = word.count(alphabet)
    print('{} {}'.format(alphabet, count))

백준 2851번

해결 아이디어

반복문을 돌리는 데 이전 점수의 합과 현재 점수의 합을 비교하는 방법으로 문제를 해결하였다. 비교를 할 때는 절댓값을 활용하였다.

내가 작성한 코드

num = [int(input()) for _ in range(10)]

count = 0

for i in range(10):
    pre = count
    curr = count + num[i]
    if curr > 100:
        if abs(100 - pre) < abs(100 -curr):
            count = pre   
            break
        else:
            count = curr
            break
    count+= num[i]   

print(count)
profile
할 수 있는 것부터 차근차근, 항해자의 공부 기록공간

0개의 댓글