1213 String
두 가지 접근법
- 방법 1 ) for문 돌면서 매번 체크
- 방법 2 ) 카운트 함수 활용
# 방법 1 - for문 돌면서 일치하는 첫 글자 나오면 확인하기
for tc in range(10):
N = int(input())
target = input()
sentence = input()
result = 0
for i in range(len(sentence)):
if sentence[i] == target[0]:
if sentence[i:i+len(target)] == target:
result += 1
print("#{} {}".format(N,result))
# 방법 2 - count 함수 활용
for tc in range(10):
N = int(input())
target = input()
sentence = input()
print("#{} {}".format(N,sentence.count(target)))
1234 비밀번호
접근법 : 새로운 문자열을 만들어나가되, 직전 문자와 같으면 (1)추가하지 않고 (2)새로운 문자열 맨 마지막 글자 제외
for tc in range(10):
l,pw = input().split()
tmp = ''
for num in pw:
if tmp and tmp[-1] == num:
tmp = tmp[:-1]
else:
tmp += num
print("#{} {}".format(tc+1,tmp))
1240 단순2진암호코드
접근법
- 주어진 해독코드에 따르면 모든 숫자의 맨 뒤가 '1' 이고 앞은 '1' 이거나 '0' => 뒤에서 7배수만큼 8번 잘라내는게 확실
- 잘라낸 코드를 앞에서부터 7개씩 해독해서 값을 비교하고, 문제에서 제시한 조건에 따라 출력
n = {'0001101':0,'0011001':1,'0010011':2,'0111101':3,'0100011':4,
'0110001':5,'0101111':6, '0111011':7,'0110111':8,'0001011':9}
for tc in range(int(input())):
N,M = map(int, input().split())
code = [input() for _ in range(N)]
found = False
for i in range(N):
for j in range(M-1,-1,-1):
if code[i][j] == '1': # 1을 뒤에서 찾았으면 더이상 찾을 필요 없음
r_idx = i
c_idx = j
found = True
break
if found:
break
t = code[r_idx][c_idx-55:c_idx+1]
even,odd = 0,0
for k in range(7):
if k%2==0:
even += n[t[7*k:7*(k+1)]]
else:
odd += n[t[7*k:7*(k+1)]]
r = even*3 + odd
if (r+n[t[-7:]])%10 != 0:
r = 0
else:
r = even+odd+n[t[-7:]]
print("#{} {}".format(tc+1,r))
3314 보충학습과 평균
푸는 방법이 매우 다양한 문제. 조건이 까다롭지 않아서 람다식으로 해결.
for tc in range(int(input())):
print("#{} {}".format(tc+1,sum(list(map(lambda x:x if x>=40 else 40,list(map(int, input().split())))))//5))
4751 다솔이의 다이아몬드 장식
규칙만 찾으면 구현은 별로 어렵지 않음. 주어진 문자열의 길이의 딱 절반까지만 구해도 나머지 뒷부분은 반복.
for tc in range(int(input())):
s = input()
time = len(s)
for i in range(5):
if i==0 or i==4:
print("..#."*time+'.')
elif i==1 or i==3:
print(".#"*(2*time)+'.')
else:
print("#.",end="")
print(".#.".join(list(s)),end="")
print(".#")
'Problem Solving > SWEA' 카테고리의 다른 글
[ SWEA ] D3 - 3456, 1209, 9700, 5549 - python 문제풀이 (0) | 2021.07.06 |
---|---|
[ SWEA ] D3 - 11688, 5431, 2805, 1228 - python 문제풀이 (0) | 2021.07.05 |
[ SWEA ] D3 - 1220, 1216, 5601, 10570 - python 문제풀이 (0) | 2021.07.01 |
[ SWEA ] D3 - 1215, 1225, 1289, 10505 - python 문제풀이 (0) | 2021.06.30 |
[ SWEA ] D3 - 1217, 1230, 3431, 4406 - python 문제풀이 (0) | 2021.06.29 |
댓글