일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
아자아자 화이팅이닷 !
231026 프로그래머스 문제풀기 본문
* 겹치는 선분의 길이 문제는
처음에
def solution(lines):
count = 0
for i in range(len(lines)-1):
if lines[-1][0] < lines[i+1][0] and lines[i+1][0] < lines[i][1]:
count += lines[i+1][1] - lines[-1][0]
elif lines[i+1][0] < lines[i][1]:
count += lines[i][1] - lines[i+1][0]
return count
이런식으로 접근을 해서 풀려고 했는데, 테스트 케이스는 하나가 통과가 되지 않았다 ..!
근데 생각을 해보니 순서를 바꾸면 저 코드는 틀린게 되는것이었돠 ..
그래서 구글링을 해봤는데,,
음 ... 어려웠다 ㅠ
def solution(lines):
result = 0
count = [0 for _ in range(200)]
for line in lines:
for i in range(line[0],line[1]):
count[i+100] += 1
result += count.count(2)
result += count.count(3)
return result
이 풀이가 나한테는 이해가 그나마 되는 풀이였다 ㅠ
해설은
프로그래머스 | 겹치는 선분의 길이 [파이썬 python]
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def
dduniverse.tistory.com
이 블로그가 도움이 많이 되었다 !
다른 풀이로는
def solution(lines):
s1 = set(i for i in range(lines[0][0], lines[0][1]))
s2 = set(i for i in range(lines[1][0], lines[1][1]))
s3 = set(i for i in range(lines[2][0], lines[2][1]))
return len((s1 & s2) | (s2 & s3) | (s1 & s3))
이 풀이와
def solution(lines):
sets = [set(range(min(l), max(l))) for l in lines]
return len(sets[0] & sets[1] | sets[0] & sets[2] | sets[1] & sets[2])
이 풀이가 있었는데,
확실하게 이해가 되지는 않았돠 ㅠ
물어봐야지 ,, ㅜㅜ
* 평행 문제는
def solution(dots):
if (dots[0][1] - dots[1][1]) / (dots[0][0] - dots[1][0]) == (dots[2][1] - dots[3][1]) / (dots[2][0] - dots[3][0]):
return 1
elif (dots[0][1] - dots[2][1]) / (dots[0][0] - dots[2][0]) == (dots[1][1] - dots[3][1]) / (dots[1][0] - dots[3][0]):
return 1
elif (dots[0][1] - dots[3][1]) / (dots[0][0] - dots[3][0]) == (dots[2][1] - dots[1][1]) / (dots[2][0] - dots[1][0]):
return 1
else:
return 0
이렇게 해결하였는데,
처음에 기울기가 되는 선의 길이를 추가로 조건으로 주어서 조금 헤맸다 ㅋ.ㅋ ...
그래도 풀었당 ! 희희
신 나 부 러

내가 짠 코드보다 간결한 코드가 있어 가져와봤다 !
def solution(dots):
[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]=dots
answer1 = ((y1-y2)*(x3-x4) == (y3-y4)*(x1-x2))
answer2 = ((y1-y3)*(x2-x4) == (y2-y4)*(x1-x3))
answer3 = ((y1-y4)*(x2-x3) == (y2-y3)*(x1-x4))
return 1 if answer1 or answer2 or answer3 else 0
이렇게 아예 배열을 dots라는 배열로 묶어버리면 더 간결하게 풀 수 있었다 !
와 웅 ~
* 정수를 나선형으로 배치하기 문제는
감이 안와서 구글링을 했는데,,
그나마 직관적인 코드가
https://sefact.github.io/posts/181832/
[프로그래머스] 정수를 나선형으로 배치하기
[unrated] 정수를 나선형으로 배치하기 - 181832
sefact.github.io
이 코드였지만,,
확실하게 이거다 ! 하고 이해가 되지 않았다 ㅠ
다른 코드들은 해설이 없어서 이해하기도 힘듦 ㅜ 뿌에엥 ....
이것도 물어봐야겠다 .....
슬 펑 ..!

* 옹알이(1) 문제는
혼자 노가다 (?) ㅎㅎ.. 를 하다가 이건 아니다 싶어서 구글링 ..
def solution(babbling):
result = 0
says = ["aya","ye","woo","ma"]
for i in range(len(babbling)):
for say in says:
if say in babbling[i]:
babbling[i] = babbling[i].replace(say,"*")
if all(char == "*" for char in babbling[i]):
result += 1
return result
내 기준 좋은 풀이라고 생각이 든다 !
귣 !
일단 입문은 다 풀었닥 !
기 쁘 다 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
옝ㅇㅇ ~~~~~~~~~~
기초 두문제가 남았는데 다른 사람의 도움을 받아야 해결 가능할 것 같당 ..
그래도 잘해따 ! 우히히
화이팅 ~!~~~~
'TIL' 카테고리의 다른 글
231030 프로그래머스 문제풀기 (0) | 2023.11.01 |
---|---|
231028 프로그래머스 문제풀기 [고득점 Kit] (0) | 2023.10.29 |
231025 프로그래머스 문제풀기 (0) | 2023.10.25 |
231024 프로그래머스 문제풀기 (0) | 2023.10.24 |
231023 프로그래머스 문제풀기 (0) | 2023.10.23 |