Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Two Pointer
- typescript
- python
- queue
- Algorithm
- javascript
- Jest
- 알고리즘
- frontend
- PCCP
- pymodbus
- Stack
- 점화식
- configfile
- Vite
- 파이썬
- modbus
- InfluxDB
- React
- 스택/큐
- algorhtim
- telegraf
- pnpm
- algorighm
- 코딩테스트 연습
- Server monitoring
- monorepo
- 프로그래머스
- 완전탐색
- 슬라이딩 윈도우
Archives
- Today
- Total
DM Log
[월간 코드 챌린지 시즌3] n^2 배열 자르기 - Python / JavaScript 본문
문제 링크 - http://school.programmers.co.kr/learn/courses/30/lessons/87390
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제 간단 요약]
1. n*n 배열을 1차원 배열로 만들어서 left와 right의 부분을 출력하는 문제
2. n*n 배열은 1행 1열부터 i행 i열까지 비어있는 숫자를 i로 채워짐
1 | 2 | 3 | 4 |
2 | 2 | 3 | 4 |
3 | 3 | 3 | 4 |
4 | 4 | 4 | 4 |
[문제 해결 방안]
1. 문제의 n*n 배열을 1차원으로 변경 시 규칙성 발견
- n=3 1,2,3|2,2,3|3,3,3
- n=4 1,2,3,4|2,2,3,4|3,3,3,4|4,4,4,4
2. 몫과 나머지를 활용하여 규칙성 문제 해결
[문제 해결 코드 - python]
def solution(n, left, right):
answer = []
for i in range(left+1, right+2):
if i % n == 0:
answer.append(n)
else:
if i % n <= i // n:
answer.append(i // n + 1)
else:
answer.append(i % n)
return answer
[문제 해결 코드 - javascript]
function solution(n, left, right) {
var answer = [];
for (let i = left+1; i < right+2; i++) {
if (i % n === 0) {
answer.push(n)
} else {
if (i % n <= i / n) {
answer.push(Math.floor(i / n) +1)
} else {
answer.push(i % n)
}
}
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[해시] 의상 - Python / JavaScript (0) | 2025.03.23 |
---|---|
[연습문제] 행렬의 곱셈 - Python / JavaScript (0) | 2025.03.22 |
[연습문제] 할인 행사 - Python (0) | 2025.03.16 |
[월간 코드 챌린지 시즌2] 괄호 회전하기 - Python (0) | 2025.03.11 |
[연습문제] 연속 부분 수열 합의 개수 - Python / JavaScript (0) | 2025.03.05 |