1220 Magnetic
주의 - 답안이랑 내가 푼 답이랑 숫자는 비슷한데 값이 틀리다면 조건을 반대로 바꿔보면 된다... ㅎ
접근 - 생각보다 쉽고 다양한 방법으로 풀 수 있음
방법 1 : 이끌리는 방향의 가장 바깥에 있는 것들을 빼버린 뒤 시작 인덱스와 끝 인덱스만 검토하면서 직전값과 다르면 카운트를 올려주고 값을 갱신해주는 방식
방법 2 : 0을 다 지우고 "12"만 세어주는 방식(어차피 저 바뀌는 부분만 카운트하면되니까)
# 방법 1 - 코드가 길다...
for tc in range(10):
N = int(input())
table = [list(input().split()) for _ in range(N)]
cnt = 0
before = table[0][0]
for i in range(N):
s_idx =0
for start in range(N):
if table[start][i] == '1':
s_idx = start
break
e_idx = N-1
for end in range(N-1,-1,-1):
if table[end][i] == '2':
e_idx = end+1
break
tmp = '0'
for j in range(s_idx,e_idx):
if table[j][i] != '0' and table[j][i] != tmp[-1]:
tmp += table[j][i]
cnt += len(tmp)//2
print("#{} {}".format(tc+1, cnt))
좀 더 깔끔한 방법
# 방법 2
for tc in range(10):
N = int(input())
table = [list(input().split()) for _ in range(N)]
cnt = 0
for i in range(N):
tmp = ''
for j in range(N):
tmp += table[j][i]
cnt += tmp.replace("0","").count("12")
print("#{} {}".format(tc+1, cnt))
메모리, 속도, 길이 모두를 고려했을때 count를 활용하는 방법이 깔끔
1216 회문2
for tc in range(10):
N = int(input())
characters = [list(input()) for _ in range(100)]
characters2 = [[characters[i][j] for i in range(100)] for j in range(100)]
cnt = 100
found = False
while cnt >= 1:
for m in range(100-cnt+1):
for n in range(100-cnt+1):
if characters[m][n:n+cnt]==characters[m][n:n+cnt][::-1]:
found = True
if characters2[m][n:n+cnt]==characters2[m][n:n+cnt][::-1]:
found = True
if found == True:
break
cnt -= 1
print("#{} {}".format(N, cnt))
5601 쥬스 나누기
그냥 수학 문제. 상식적으로 최대한 마시려면 결국 모두 다 동일하게 나눠마셔야 함.
for tc in range(int(input())):
N = int(input())
print("#{}{}".format(tc+1, (" 1/"+str(N))*N))
10570 제곱팰린드롬수
주어진 범위를 활용해서 미리 가능한 값을 포함하는 배열을 만들어놓고 풀어도 되고 그냥 매번 판별해도 되기는 함
for tc in range(int(input())):
A,B = map(int, input().split())
N = 1
cnt = 0
while N**2<=B:
if N**2 >= A:
tmp = str(N)
if tmp == tmp[::-1]:
tmp = str(N**2)
if tmp == tmp[::-1]:
cnt +=1
N += 1
print("#{} {}".format(tc+1, cnt))
'Problem Solving > SWEA' 카테고리의 다른 글
[ SWEA ] D3 - 11688, 5431, 2805, 1228 - python 문제풀이 (0) | 2021.07.05 |
---|---|
[ SWEA ] D3 - 1213, 1234, 1240, 3314, 4751 - python 문제풀이 (0) | 2021.07.02 |
[ SWEA ] D3 - 1215, 1225, 1289, 10505 - python 문제풀이 (0) | 2021.06.30 |
[ SWEA ] D3 - 1217, 1230, 3431, 4406 - python 문제풀이 (0) | 2021.06.29 |
[ SWEA ] D2 - 1940, 1928, 1288, 1284, 1204 - python 문제풀이 (0) | 2021.06.28 |
댓글