위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (564)
    • ✎ 2025년 (5)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (564)
    • ✎ 2025년 (5)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2020년/코테

    [프로그래머스 lv2, lv3 을 풀자!] 삼각 달팽이

    2020. 10. 18. 15:44

    by. 위지원

    programmers.co.kr/learn/courses/30/lessons/68645

     

    코딩테스트 연습 - 삼각 달팽이

    5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]

    programmers.co.kr

    문제 설명

    정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.

    def solution(n):
        lis = [[0 for _ in range(n)] for _ in range(n)]
        y, x = -1, 0
        num = 1
        for i in range(n):
            for j in range(i, n):
                if i%3 == 0:
                    y +=1
                elif i%3 == 1:
                    x +=1
                elif i%3 == 2:
                    y-=1
                    x-=1
                lis[y][x] = num
                num+=1
        res = []
        for i in lis:
            for j in i:
                if j !=0:
                    res.append(j)
        return res
                

     

     

    삼각형 특성상 이동 방법이 ↙ → ↖라는걸 이용한 방법이였다.

     

     

     

    내친김에 그냥 달팽이도 연습해봤다. 

    더 쉬웠다.

    s를 이용해서 방향을 바꾸어주고 x++ 방향 y++ 방향 그다음엔 *(-1)이여서 x-- y-- 방향으로

    이때 k, 즉 달팽이 크기의 수를 점점 줄여야한다.

     

    www.acmicpc.net/problem/1913

     

    1913번: 달팽이

    N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서

    www.acmicpc.net

    백준에도 같은 문제가 있었다.

    num = int(input())
    findNum = int(input())
    data = [[0]* num for i in range(num)]
    
    n = num**2 + 1
    s = 1
    i = -1
    j = 0
    k = num
    
    while True:
        for p in range(1, k+1):
            n -= 1
            i += s
            data[i][j] = n
        k -= 1
    
        if k <= 0:
            break
        for p in range(1, k+1):
            n -= 1
            j += s
            data[i][j] = n
        s*= -1
        
    res = [0,0]
    for i in range(len(data)):
        for j in range(len(data[0])):
            print(data[i][j], end=' ')
            if data[i][j] == findNum:
                res[0], res[1] = i+1, j+1
        print()
    print(res[0],res[1])

     

    저작자표시 (새창열림)

    '2020년 > 코테' 카테고리의 다른 글

    [leetcode]Smallest Integer Divisible by K  (0) 2020.11.25
    [코테 연습] 큰 수 만들기  (0) 2020.10.18
    [프로그래머스 Lv1,Lv2 다풀기 프로젝트] 소수찾기  (0) 2020.10.04
    [프로그래머스 Lv1,Lv2 다풀기 프로젝트] 2016년  (1) 2020.10.03
    [leetcode 추석맞이 3문제] minimum-absolute-, differencerepeated-dna-sequences, pseudo-palindromic-paths-in-a-binary-tree  (0) 2020.10.01

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • [leetcode]Smallest Integer Divisible by K 2020.11.25
    • [코테 연습] 큰 수 만들기 2020.10.18
    • [프로그래머스 Lv1,Lv2 다풀기 프로젝트] 소수찾기 2020.10.04
    • [프로그래머스 Lv1,Lv2 다풀기 프로젝트] 2016년 2020.10.03
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터와 관련된 일을 모두 좋아합니다

티스토리툴바

티스토리툴바