반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 쿠버네티스
- 개발자
- 도커
- Elasticsearch
- 백엔드
- 카카오
- 코딩테스트
- Python
- docker
- Linux
- 캐시
- 자바
- 스프링
- springboot
- Spring
- Java
- 알고리즘
- IT
- DPDK
- 네트워크
- programmers
- 운영체제
- 리눅스
- Kakao
- 프로그래머스 #카카오 #IT #코딩테스트
- 프로그래머스
- C
- 스프링부트
- 파이썬
- 엘라스틱서치
Archives
- Today
- Total
저고데
[프로그래머스]바탕화면 정리 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
드래그 해야하는 최소의 범위를 구해야하기 때문에 파일이 있는 곳에서 x, y 좌표가 가장 큰 것과 작은 것을 구하면 된다.
코드를 작성하는 순서는 다음과 같다.
1. 파일이 있는 좌표를 모두 구해준다.
2. x, y의 최댓값과 최솟값을 구하기 위해서 정렬을 해준다.
3. 각각의 첫번째 값을 답에 넣어준다.
def solution(wallpaper):
answer = []
sharp = []
for i in range(len(wallpaper)):
for j in range(len(wallpaper[i])):
if wallpaper[i][j] == '#':
sharp.append([i, j]) #1번
sharp.sort(key = lambda x : x[0]) #2번 : x의 최솟값
answer.append(sharp[0][0])
sharp.sort(key = lambda x : x[1]) #2번 : y의 최솟값
answer.append(sharp[0][1])
sharp.sort(key = lambda x : -x[0]) #2번 : x의 최댓값
answer.append(sharp[0][0]+1) #문제에서 제시된 마우스와 파일의 좌표가 다르므로 1을 더해주어야한다.
sharp.sort(key = lambda x : -x[1]) #2번 : y의 최댓값
answer.append(sharp[0][1]+1) #마찬가지로 1을 더해준다.
return answer
필자는 정렬을 통하여 최대, 최솟값을 구했다.
다른 방법을 사용할수도 있었지만, 다음과 같은 방법이 직관적이고 편한 방법인듯하다.
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]혼자서 하는 틱택토 (0) | 2023.03.07 |
---|---|
[프로그래머스]이모티콘 할인행사 (0) | 2023.03.07 |
[프로그래머스]대충 만든 자판 (0) | 2023.03.04 |
[프로그래머스]디펜스 게임 (0) | 2023.03.04 |
[프로그래머스]길 찾기 게임 (0) | 2023.02.15 |