Computer Science/알고리즘

[코드트리 챌린지] 완전탐색

hyunjin 2023. 9. 30. 22:53

실력진단

학습내용

완전탐색

import sys
INT_MAX = sys.maxsize #가독성을 위해

n=int(input())
arr=list(map(int, input().split()))
ans=INT_MAX
for i in range(n):
    sum_val=0
    for j in range(n):
        sum_val+=arr[j]*abs(i-j)

    ans=min(ans,sum_val)

print(ans)

 

  • 괄호 쌍 만들어주기 3

https://www.codetree.ai/missions/5/problems/pair-parentheses-3?&utm_source=clipboard&utm_medium=text

#모범답안
string = input()
n=len(string)

cnt=0
for i in range(n):
	for j in range(i+1,n):
		if string[i]=='(' and string[j]==')':
			cnt+=1
print(cnt)

# 내 답안
arr=list(input())
cnt=0
for i in range(len(arr)):
    if arr[i] =='(':
        for j in range(i+1,len(arr)):
            if arr[j]==')':
                cnt+=1
print(cnt)
  • 일렬로 서있는 소 2

https://www.codetree.ai/missions/5/problems/cattle-in-a-rowing-up-2?&utm_source=clipboard&utm_medium=text

n=int(input())
arr=list(map(int,input().split()))
cnt=0
for i in range(n):
    for j in range(i+1,n):
        for k in range(j+1,n):
            if arr[i]<=arr[j] and arr[j]<=arr[k]:
                cnt+=1

print(cnt)

 

  • 최고의 13위치

https://www.codetree.ai/missions/5/problems/best-place-of-13?&utm_source=clipboard&utm_medium=text

n=int(input())
arr=[list(map(int, input().split())) for _ in range(n)]
ans=0
for i in range(n):
    sum_val=0
    for j in range(n-2):
        sum_val=arr[i][j]+arr[i][j+1]+arr[i][j+2]
        ans=max(ans,sum_val)

print(ans)
  • 체크판위에서2

https://www.codetree.ai/missions/5/problems/on-the-checkboard-2?&utm_source=clipboard&utm_medium=text

n,m=map(int,input().split())
arr=[list(input().split()) for _ in range(n)]

cnt=0
# 0,0 -> i,j -> k,l -> n-1,m-1
for i in range(1,n):
    for j in range(1,m):
        for k in range(i+1,n-1):
            for l in range(j+1,m-1): 
                if arr[0][0]!=arr[i][j] and arr[i][j]!=arr[k][l] \\
                      and arr[k][l] != arr[n-1][m-1]:#역슬래시 마지막에 쓰면 밑에줄도 이어지게 인식
                      cnt+=1
print(cnt)