일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- token provider 구현
- Jwts 토큰 만들기
- 정보보호병 프로그래밍
- spring boot token provider
- 정보보호병 개발
- 양재천 장마 피해
- 파이썬
- 정보보호병 후기
- 파이브 스타즈 사전예약
- 데스나이트 키우기 매크로
- jwt 토큰 생성
- 로그스태쉬
- 토큰 만드는법
- 퇴직 라이프
- 스프링 로그인 기능 만들기
- 파이브 스타즈
- 해군
- 멀티 파이프 라인
- 데스나이트 키우기 쿠폰 정리글
- 코로나 19 견디기
- jwts 토큰
- 정보보호병
- 양재천 오리
- 양재천 사진
- 데스나이트 키우기 매크로 소스파일
- 파이브 스타즈 후기
- logstash 설정
- logstash cubrid 설정
- 스프링 security
- 데스나이트 키우기
Archives
- Today
- Total
InTen
프로그래머스 월간 코드 챌린지 2번 문제 본문
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
[
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
](https://programmers.co.kr/learn/challenges)
프로그래머스 쪽 대회 관련 글들을 살펴보니 문제의 대한 해설 또는 글에 대한 제제가 없는것으로 확인되어서 글을 씁니다.
광고는 제거 하였고 비영리성을 띄게 게시글을 전환해 두었습니다.
문제가 있을시 비공개 처리하겠습니다.

2번 문제의 그림이다.
2차원 배열 안에 그림과 같이 넣는 방식인데
비슷한 문제로는 달팽이 사각형이라는 문제가 있다.
해결한 코드는
def solution(n):
board = [[0]*n for y in range(n)]
answer = []
x, y, cnt=0, -1, 1
while True:
for i in range(0,n):
y += 1
board[y][x]=cnt
cnt += 1
n -= 1
if n<=0:
break
for j in range(0,n):
x += 1
board[y][x] = cnt
cnt += 1
n -= 1
if n<=0:
break
for i in range(1,n+1):
y -= 1
x -= 1
board[y][x]=cnt
cnt +=1
n -= 1
if n<=0:
break
for i in board:
for j in i:
if j != 0:
answer.append(j)
return answer
위의 코드와 같은데 코드 속도가 느릴꺼라는 생각과는 달리 잘 동작하기에 개선은 하지 않았다.
달팽이 사각형 문제는 x,y 좌표를 변환하는 식이 4개인것과 달리 삼각형은 3개의 식으로만 구성되어서 오히려 더 쉽게 구현 가능하다.
위의 그림처럼 알고리즘의 개념만 잡는다면 쉽게 구현 가능하다.
3~4번 문제는 정확하게 기억이 나지 않아서 코드를 다시 복구하게 된다면 게시글 작성을 하겠습니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬 3.x] 엘리베이터 문제 (2) | 2020.12.12 |
---|---|
데스나이트 키우기 매크로 소스 파일 (0) | 2020.09.20 |
프로그래머스 월간 코드 챌린지 문제 1 번 코드 (0) | 2020.09.12 |
[Python 3.x] 파이썬 배열 입력 정리 (0) | 2020.08.29 |
[Python 3.x] 파이썬 다운로드 설치 & 환경 변수 세팅 (0) | 2020.08.28 |
Comments