코드만 궁금한 분은 깃허브링크 눌러주세요!
GitHub - Rhyankwon/algorithms
Contribute to Rhyankwon/algorithms development by creating an account on GitHub.
github.com
문제 설명
문제는 간단하다. ax+by+c = 0 꼴의 방정식을 이루는 a,b,c 쌍들이 주어지고 모든 방정식의 교점을 구해 그 중 정수의 x좌표 y좌표를 갖는 경우에 한해서 * 처리를 하고 나머지 범위는 모두 '.' 을 입력한다. 이 때, 모든 별을 포함하는 가장 작은 직사각형 만큼은 '.'을 찍어야하고, 이 때 위와같이 문자열 리스트를 만들어서 리턴해야한다. 요새 백준만 풀다보니까 리턴하는게 어색했달까
아무튼 문제 해결 논리
1. for문을 통해 모든 방정식의 해를 구한다. 이 때 방정식 해 구하는건 문제 맨 아래에 보면 있으니까 그걸 참고해서 풀면 쉬움.
2. 만약 방정식의 해(x, y좌표 모두)가 정수로 나누어떨어지지 않으면 스킵, 정수로 나누어 떨어지면 리스트에 x, y좌표를 저장하고 최소/최대 x,y좌표를 매번 업데이트한다.
3. 모든 해를 다 구하면 최소/최대 x,y좌표의 길이 차 만큼의 '.'으로 구성된 리스트를 만든다.
4. x, y 값에서 각각 min(x), min(y)값을 빼서 (그렇게 해야 인덱스가 조정됨) 해당 인덱스를 '*'로 바꾼다.
5. y좌표는 우리가 평소에 그릴때와 다르게 위에서부터 0, 맨 아래 인덱스가 n이므로 리스트의 행을 뒤집는다.
리턴하면 끝!
인덱스 조정하는게 가장 어려운 문제. 난이도 레벨 투 적당한듯?
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 월간 코드 챌린지3 n^2 배열 자르기 파이썬 해설/코드, 살짝 복잡한 구현문제 (0) | 2021.12.24 |
---|---|
프로그래머스 아이템 줍기 풀이/해설 (파이썬) 간단한 코드! + 잡담 (0) | 2021.11.01 |
프로그래머스 단어 변환 문제 해설/코드 (파이썬), BFS활용문제 (0) | 2021.10.12 |
(파이썬) 프로그래머스 9주차 위클리챌린지, 전력망을 둘로 나누기 해설/풀이/코드 그래프 탐색문제 (0) | 2021.10.08 |
프로그래머스 8주차 위클리 챌린지 최소직사각형 문제 해설/코드 (파이썬) (0) | 2021.09.30 |