1859. 백만 장자 프로젝트
t=int(input())
for tc in range(1,t+1):
n=int(input())
lst = list(map(int,input().split()))
result=0
maxValue=lst[-1]
for i in range(n-2,-1,-1):
value=lst[i]
if maxValue<=value:
maxValue=value
else:
result+=(maxValue-value)
print(f'#{tc} {result}')
*for문 안에 n-2 로 들어간다는 것
*list로 입력 받기
*maxValue와 value 가 같을 경우도 넣어줘야 한다.
1926. 간단한 369게임
n = int(input())
clap='-'
lst=[]
three=['3','6','9']
for i in range(1,n+1):
string = str(i)
if string in three:
lst.append(clap)
else:
lst.append(i)
print(*lst)
* 나는 1~10까지 밖에 구현 못하였다,,
n = int(input())
clap=['3','6','9']
for i in range(1,n+1):
count=0
for j in str(i):
if j in clap:
count+=1
if count>0:
i='-'*count
print(i,end=' ')
* count 변수 이용해서 3,6,9 개수마다 - 의 수를 늘려줄 수 있었다.
* i 변수에 숫자대신 '-' 를 넣어주는 방식 -> i만 출력해주면 됨 -> end=' ' 를 통해 한줄로 출력 가능하다.
* for j in str(i) 를 통해 각 자릿수를 확인할 수 있다.
2007. 패턴 마디의 길이
*풀이보고 했다.
t=int(input())
for tc in range(1,t+1):
a = list(input())
s=0
for i in range(1,10):
if a[0] != a[i] or a[1] != a[i+1]:
s+=1
else:
break
s+=1
print(f'#{tc} {s}')
* 10글자 내외라는 점을 이용해서 for문 돌린다
* 두글자 일치하는지 확인하고 일치하면 +1 해준다.
* a[0] 은 처음에 카운트 되지 않았으니 마지막에 s+=1 을 해준다.
2005. 파스칼의 삼각형
t = int(input())
for tc in range(1,t+1):
n=int(input())
a=1
print(f'#{tc}')
print(a)
for i in range(1,n):
lst = [1]
for j in range(0,i-1):
lst.append(i)
lst.append(1)
print(*lst)
* 이렇게 야매로 해결해보려했으나 5이상부터는 적용되지 않았다.
* 풀이를 찾아보았다.
t=int(input())
for tc in range(1,t+1):
n=int(input())
pascal = [n*[0] for _ in range(n)]
pascal[0][0]=1
for i in range(1,n):
for j in range(n):
if j==0:
pascal[i][j]=1
else:
pascal[i][j]=pascal[i-1][j-1]+pascal[i-1][j]
print(f'#{tc}')
for k in range(n):
for l in range(n):
if pascal[k][l]:
print(pascal[k][l],end=' ')
print()
* pascal = [[0] * N for _ in range(N)] 이 줄을 통해
n을 4를 입력하면
이렇게 생긴 리스트 반환됨 !
*pascal[0][0]=1 로 값을 넣어놓고 시작함
* if pascal[k][l] 은 0이 되어있는 것은 빼고 출력하기 위해서
2001. 파리 퇴치
* 또 풀이를 찾아보았다. D2 어렵따
[SWEA] #2001. 파리퇴치_파이썬
풀기 전 생각해보기😮 이차원 배열에서 파리채를 휘둘렀을 때 잡을 수 있는 파리 수 탐색 가능한 모든 경우의 수 탐색 풀이🛫 T = int(input()) for a in range(T): N, M = map(int, input().split()) arr = [list(map(in
hei-jayden.tistory.com
t=int(input())
for tc in range(1,t+1):
n,m = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(n)]
kills=[]
for i in range(n-m+1):
for j in range(n-m+1):
fly=0
for k in range(m):
for l in range(m):
fly+=arr[i+k][j+l]
kills.append(fly)
print(f'#{tc} {max(kills)}')
arr = [list(map(int,input().split())) for _ in range(n)]
* 이 줄을 통해 리스트로 한 줄 한 줄 입력받는다. n번 리스트를 입력받는다
* range(N-M+1) : 파리채를 휘두를 수 있는 공간
ex) M의 크기가 1일 경우, 모든 배열 공간을 대상으로 탐색할(파리채를 휘두를) 수 있다. 그런데 파리채의 크기가 커지게 되면, 탐색할 수 있는 배열 공간은 줄어들게 된다. 이에 따라 탐색 범위를 조절해줘야 하기 때문에 N-M+1으로 조정하였다.
- N이 5일 때, 파리채(M)이 1일 때 휘두를 수 있는 경우의 수 = 25가지
- 동일한 조건에서 M = 2일 때 휘두를 수 있는 경우의 수 = 16가지
- 동일한 조건에서 M = 3일 때 휘두를 수 있는 경우의 수 = 9가지 ...
for k in range(M):
for l in range(M):
fly += arr[i+k][j+l]
kills.append(fly)
*(M*M)을 한 번 다 탐색 후 (값은 fly에 차곡 차곡 쌓였음) fly 값을 kils 배열에 넣어줌
1989. 초심자의 회문 검사
t=int(input())
for tc in range(1,t+1):
data = list(input())
n=len(data)
result=1
for i in range(n):
j=n-1-i
if data[i] != data[j]:
result=0
break
print(f'#{tc} {result}')
1986. 지그재그 숫자
t=int(input())
for tc in range(1,t+1):
n=int(input())
result=0
for i in range(1,n+1):
if i%2==0:
result-=i
else:
result+=i
print(f'#{tc} {result}')
1984. 중간 평균값 구하기
t=int(input())
for tc in range(1,t+1):
arr=list(map(int,input().split()))
maxV=max(arr)
minV=min(arr)
arr.remove(maxV)
arr.remove(minV)
#hap=0
hap=sum(arr)
avg=0
#for j in arr:
#hap+=j
print(f'#{tc} {round(hap/8)}')
*for 문 이용해서 안합치구 sum() 쓰면 된다.
1983. 조교의 성적 매기기
t=int(input())
for tc in range(1,t+1):
n,k=map(int,input().split())
arr=[list(map(int,input().split())) for _ in range(n)]
allValue=[]
for i in range(n):
value = 0
for j in range(3):
if j==0:
value+=arr[i][j]*0.35
if j==1:
value+=arr[i][j]*0.45
if j==2:
value+=arr[i][j]*0.2
allValue.append(value)
allValue.sort(reverse=True)
print(allValue)
* 나는 총합 리스트를 구하는 것까지 밖에 생각 못하였다.
* 다른 사람의 풀이를 찾아보았다.
SWEA 1983 조교의 성적 매기기 (파이썬)
문제 링크 > 내 코드 > 포인트 처음에 문제를 잘못 이해해서 굉장히 헤맸..
velog.io
T = int(input())
grades = ['A+', 'A0', 'A-', 'B+', 'B0', 'B-', 'C+', 'C0', 'C-', 'D0']
for tc in range(1, T+1):
N, K = map(int, input().split())
total_list = []
for _ in range(N): # n번 돌아
mid, final, hws = map(int, input().split())
total = (mid * 0.35) + (final * 0.45) + (hws*0.2)
total_list.append(total)
# [74.6, 92.55000000000001, 88.8, 99.45, 72.35, 85.85000000000001, 96.25, 68.95, 85.5, 85.75]
# k번 학생의 점수
# 먼저 k번째 학생의 인덱스를 구해주고
k_score = total_list[K-1]
# 정렬
total_list.sort(reverse=True)
# [99.45, 96.25, 92.55000000000001, 88.8, 85.85000000000001, 85.75, 85.5, 74.6, 72.35, 68.95]
div = N//10
final_k_score = total_list.index(k_score) // div
print('#{} {}'.format(tc, grades[final_k_score]))
*mid, final, hws로 각각 나눠서 입력받는 것
*sort() 사용시 reverse=True 해줘서 내림차순 만드는것
*list.index() 해서 최종 출력값 구해주는 것
t=int(input())
grades = ['A+','A0','A-','B+','B0','B-','C+','C0','C-','D0']
for tc in range(1,t+1):
n,k = map(int,input().split())
allValue=[]
for i in range(n):
mid,final,hws = map(int,input().split())
finalValue = (mid*0.35) + (final*0.45) + (hws*0.2)
allValue.append(finalValue)
k_value = allValue[k-1]
allValue.sort(reverse=True)
div = n//10
final_k_value = allValue.index(k_value)//div
print(f'#{tc} {grades[final_k_value]}')
1979. 어디에 단어가 들어갈 수 있을까
*그.. dp인가 dfs 문제 인것 같은데.. 이런 문제 많이 봤는데 ,.. 왜 못풀겟지 .. 아 진짜... 짜증놔...
SWEA[D2] (Python) 1979번 어디에 단어가 들어갈 수 있을까 풀이
Python으로 구현한 1979번 어디에 단어가 들어갈 수 있을까 문제 풀이입니다. https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PuPq6AaQDFAUq&categoryId=AV5PuPq6AaQDFAUq&categoryType=CODE&pr
unie2.tistory.com
* 좀만 더 생각해볼걸..
t=int(input())
for tc in range(1,t+1):
n,k = map(int,input().split())
data = [list(map(int,input().split())) for _ in range(n)]
result=0
for i in range(n):
count=0
for j in range(n):
if data[i][j] == 1:
count+=1
if data[i][j] == 0 or j==n-1:
if count == k:
result+=1
if data[i][j]==0:
count=0
for i in range(n):
count=0
for j in range(n):
if data[j][i] == 1:
count+=1
if data[j][i] == 0 or j==n-1:
if count == k:
result+=1
if data[j][i]==0:
count=0
print(f'#{tc} {result}')
*그냥 구현이었네
10문제 끄읏

'코딩테스트 > SW Expert Academy' 카테고리의 다른 글
SWEA(D2) 1974. 스도쿠 검증 Python (0) | 2023.10.19 |
---|---|
SWEA(D2) 1976. 시각 덧셈 Python (0) | 2023.10.18 |
SWEA D1(difficult) 11~20 Python (0) | 2023.10.16 |
SWEA. D1(difficult) 풀이 Python - 1~ 10번까지 (0) | 2023.10.15 |
SWEA 1206. [S/W 문제해결 기본] 1일차 - View _ Python (0) | 2023.10.14 |