알고리즘 이론 & 풀이

    프로그래머스 Lv.0 | 캐릭터의 좌표

    문제 주소 - https://school.programmers.co.kr/learn/courses/30/lessons/120861 📝사고의 흐름 방향키가 들어있는 배열을 돌며 switch case로 무슨 키인지 검사하고, 좌표값을 ++ 혹은 -- 해주자. [0, 0]에서 시작하므로 [0, 0] 배열을 선언하고, 이 배열의 값을 증감하자. 그런데 무한정 이동할 수는 없다. max x값과 max y값을 구한다. 음수방향으로 가는 경우도 있으므로 max x 혹은 max y에 마이너스를 붙인 값도 잊으면 안된다. 만약 max x와 max y, 그리고 음수방향을 넘으면 더이상 값이 증가하지 않도록 해야 한다. switch case에서 방향키를 검사할 때 현재 좌표가 최대값에 다다르지 않았는지 검사하고, 최대값이 ..

    [백준] 1158번: 요세푸스 문제 (Python)

    [백준] 1158번: 요세푸스 문제 (Python)

    문제 📄 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 내 풀이 💻 N, K = map(int, input().split()) arr = [i for i in range(1,N+1)] result = [] index = 0 while len(arr)>0: index += K-1 index %= len(arr) result.append(arr[index]) del arr[index] print("") 문제에 주어진 것처럼 (N, K)가 (7, 3)일 때를 가정하고 문제를 풀어보자. 주어진 수의 배열이 1부터 7일 때 3번째 숫자를 제거하는 과정은 다음과 같다. 1 2 3 4 5 6 7 (3 제거할 차..

    [백준] 5598번: 카이사르 암호 (Python)

    문제 📄 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 내 풀이 💻 word = input() orgin = [] for w in word: ascii_num = ord(w) if ascii_num >= 68: orgin.append(chr(ascii_num-3)) else: orgin.append(chr(ascii_num + 23)) print(''.join(orgin)) 설명 🔑 ord(문자) - 문자를 ASCII number로 바꾸기 (ord는 ordinal..

    [백준] 2444번: 별 찍기 - 7 (Python)

    [백준] 2444번: 별 찍기 - 7 (Python)

    문제 📄 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 내 풀이 💻 N = int(input()) for i in range(1,N+1): for _ in range(N-i): print(" ",end='') for _ in range(2*i-1): print("*",end='') print() for i in range(1,N): for _ in range(i): print(" ",end='') for _ in range(2*(N-i)-1): # (2*N-1)-2*i print("*",end='') print() Review 🙋‍♀️ 파이썬 내의 문자열 반복 기능을 이용하면 for 문을 여러 개 돌리지 않아도 될 뻔했다. N = in..