일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬 #python #기초 #기본
- #코딩독학 #코딩인강 #코딩배우기 #개발자 #코딩이란 #코딩교육 #프론트엔드부트캠프 #백엔드부트캠프 #국비지원부트캠프 #개발자 #백엔드 #AI부트캠프 #개발자국비지원 #백엔드개발자
- #프론트엔드개발자
- Today
- Total
아자아자 화이팅이닷 !
230828 프로그래머스 문제풀기 본문
다시 뇌를 잘 굴러가게 해보자 !
아쟈아쟈 화이팅이다 !!!!!!!!!!!
자격증이나 시험에 촉박한 기간이 되면 마음도 다급해지고 굉장히 정신없어 지는것같다 ,,
그럴때뿐만 아니라 평소에도 잘 갖춰진 계획이 있으면 조금이나마 마인드 컨트롤을 잘 할 수 있을 것 같다 !
토익도 토스처럼 좋은 결과가 나오길 ..!
으쟈쟈 ! ! ! ! ( •̀ ω •́ )y
* 무작위로 K개의 수 뽑기 문제에서
나는
def solution(arr,k):
answer = []
for i in arr:
if i not in answer:
answer.append(i)
for _ in range(abs(k-len(answer))):
if len(answer) > k:
answer.pop()
elif len(answer) < k:
answer.append(-1)
return answer
이렇게 문제를 풀었는데,
더 간략한 좋은 코드가 있어 가져와봤다 !
def solution(arr, k):
ret = []
for i in arr:
if i not in ret:
ret.append(i)
if len(ret) == k:
break
return ret + [-1] * (k - len(ret))
바로 break문을 쓰는것 !
따로 answer(내가 짠 코드)의 길이가 k보다 클때의 경우를 생각하지 않아도 되는 좋은 코드인 것 같다 !

* 외계어 사전 문제에서
나는
def solution(spell,dic):
count = 0
for i in dic:
for j in spell:
if j in i:
count += 1
if count == len(spell):
return 1
count = 0
return 2
이렇게 count를 변수로 주고 풀었는데,
sorted()함수를 사용하면 훨씬 간단하게 해결할 수 있었다 !
def solution(spell, dic):
for d in dic:
if sorted(d) == sorted(spell):
return 1
return 2
WoW !

* 문자열 겹쳐쓰기 문제에서는
딱 이 문제를 보고 앞의 문제들에서 굉장히 간단하게 해결을 했던 다른 사람들의 풀이 방식이 떠올랐다 !
그래서 그 느낌대로 떠올리며 문제를 풀었더니
def solution(my_string,overwrite_string,s):
return my_string[:s] + overwrite_string + my_string[s+len(overwrite_string):]
이렇게 간단하게 문제를 해결할 수 있었다 !
행 - 벅 - (❁´◡`❁)
* 그림 확대 문제에서
처음에 나는
def solution(picture,k):
result = []
for i in picture:
for j in i:
result.append((j*k))
for x in result[::k]:
result.append(x*(k-1))
return result
이런식으로 문제를 해결하려고 했는데,
구글링을 해보니까 더 간단하게 문제를 해결할 수 있는 방법들이 있었다.
나는
def solution(picture,k):
result = []
for i in picture:
char = ""
for j in i:
char += j*k
for _ in range(k):
result.append(char)
return result
이렇게 문제를 해결하였는데,
char = ""를 for i in picture안에 넣은 이유가 궁금했었다 !
그 이유는
def solution(picture,k):
result = []
char = ""
for i in picture:
for j in i:
char += j*k
for _ in range(k):
result.append(char)
char = ""
return result
이렇게 char = ""의 중복을 막을 수 있기 때문이었다 !
깨달음을 얻어가는고만 ,, <(^-^)>
* 직사각형 넓이 구하기 문제에서
나는
def solution(dots):
answer1 = []
answer2 = []
for i in range(3):
answer1.append(abs(dots[i+1][0] - dots[i][0]))
answer2.append(abs(dots[i+1][1] - dots[i][1]))
return max(answer1) * max(answer2)
이렇게 문제를 해결하였는데, 더 간결한 코드가 있을 것 같아서 찾아보았다.
def solution(dots):
return (max(dots)[0] - min(dots)[0])*(max(dots)[1] - min(dots)[1])
이렇게 바로 dots에 max를 해주고 min을 해줘서 각각의 값들을 구해서 곱해주면 되는 아주 간결한 코드가 있었다 !
대 단 쑤 !
* 캐릭터의 좌표 문제는
처음에 이것저것 시도해보다가 잘 안돼서 구글링을 했다 !
그래서
def solution(keyinput,board):
xlim,ylim = board[0]//2,board[1]//2
dict = {'left':(-1,0), 'right':(1,0), 'up':(0,1), 'down':(0,-1)}
x,y = 0,0
for i in keyinput:
dx,dy = dict[i]
if abs(x+dx) > xlim or abs(y+dy) > ylim:
continue
else:
x,y = x+dx,y+dy
return [x,y]
이렇게 문제를 해결하였다 !
dictionary를 쓰는것에서 이마를 탁 치고 ,,
dictionary를 쓴지 좀 돼서 그런지 dx,dy = dict[i]라고 표현하는 것이 새삼 낯설었댜 ^^...
그리고 x+dx값과 y+dy값 각각을 abs로 넣어줘야한다는것 ..!
음수도 board값 안에 있어야하니꽈 ..!
그리고 continue쓰는것도 ,,
다시 한번 생각해보게 해주는 좋은 코드였다 !

오늘은 여기까쥐 !
한동안은 잘 안풀렸었는데 오늘은 괜찮았다 ㅎ.ㅎ
다행쑤 ~
화이팅이다 !
'TIL' 카테고리의 다른 글
230831 프로그래머스 문제풀기 (0) | 2023.08.31 |
---|---|
230830 프로그래머스 문제풀기 & 1대1 코칭 (0) | 2023.08.30 |
230824 SQLD 자격증 공부 & 토익공부 (0) | 2023.08.24 |
230822 프로그래머스 문제풀기 & 온라인 스터디 & 토익공부 (0) | 2023.08.22 |
230821 프로그래머스 문제풀기 (0) | 2023.08.21 |