728x90
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이제부터 문제 설명은 알아서 보고
바탕화면 삭제 모든 파일을 드래그하는 가장 작은 범위 구하기 아주 쉬운 문제다
파일을 한 번에 삭제하니까 그냥 모든 좌표 중에 최대, 최소 x, y 값을 구하면 된다
반복문 2번 써서 모든 좌표 값 구한 다음 max, min 적용하면 풀리겠지만
짧게 끝내려고 여러 가지 방법을 생각해 봤다
코드만 보면 망할 코딩 방법을 고르는 정처기 문제가 생각나지만
간단한 문제니까 이해한다
일단 줄을 줄이는 건 리스트 내포나 그런 걸 써서 짧아진 거고 뭐 추가한 게 더 있으니 시간을 아마 더 걸릴 듯
여기서 핵심은 아스키코드를 이용했다 문자가 "." 과 "#" 만 있으니까 한 줄에 "#" 이 포함되어 있으면 아스키 총합이 다르기 때문에 어느 줄에 폴더가 있는지 알 수 있다 x, y 축으로 2번 해주고 각각 "#" 있는 줄을 filter 을 써서 가져온 다음 처음과 마지막 값만 리턴하면 끝난다. 다음부터는 ctrl+ a를 사용하도록 머쓱아 이름 봐라 무슨
def solution(tt):
b=tuple(filter(lambda x:x[1]<ord(".")*len(tt[0]),[[n,sum(map(lambda x:ord(x),i))] for n,i in enumerate(tt)]))
a=tuple(filter(lambda x:x[1]<ord(".")*len(tt),[[n,sum(map(lambda x:ord(x),i))] for n,i in enumerate(zip(*tt))]))
return b[0][0],a[0][0],b[-1][0]+1,a[-1][0]+1
'알고리즘 > 프로그래머스' 카테고리의 다른 글
대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2023.03.11 |
---|---|
네트워크 (0) | 2023.03.10 |
N-Queen (0) | 2023.03.06 |
그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2023.03.05 |
마법의 엘리베이타 (0) | 2023.03.04 |
댓글