Dia Egg - Shugo Chara
728x90
반응형

Algorithm 37

(기출 / 구현) 자물쇠와 열쇠

자물쇠와 열쇠 https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 해답의 풀이과정은 다음과 같다. 1. 자물쇠 리스트의 크기를 3배로 한다. 2. 4가지 방향으로 돌려본다. 3. 각 방향에서 key의 리스트 값을 더하고 가운데(원래 자물쇠값)가 모두 1을 만족하는 지 확인한다. =각 수순에 따라 아래 더 자세하게 설명했다. 1. 자물쇠 리스트의 크기를 3배로 하는 이유는 아래와 같다. 키의 크기에 맞추어 좀 더 메모리 효율성있게 만들 수 있었..

2차원 리스트를 돌리기(rotate_a_matrix_by_90_degree())

나동빈님의 '이것이 코딩테스트다'를 풀다가 2차원 리스트를 시계방향으로 90도 돌리는 함수를 만들어야하는 상황에 처했다.(두둥) 책에는 간단하게 식만 나와있었는데 외울 수는 있었지만 앞으로 계속 쓰려면 머리속으로 단단히 이해해두는게 좋을 거라고 생각해 이렇게 정리하는 글을 쓴다. 혹시 나와 같은 상황을 겪는 읽은이가 있다면 도움이 되기를..! 결국 코드는 아래와 같다! #2차원 리스트를 시계방향으로 90도 회전시키는 함수 def rotate_a_matrix_by_90_degree(a): n = len(a)#기존 2차원 리스트 행 길이 구하기 m = len(a[0])#기존 2차원 리스트 열 길이 구하기 new_list = [[0]*n for _ in range(m)] for i in range(n): fo..

Algorithm/TeamNote 2023.06.07

(기출 / 구현) 문자열 압축

문자열 압축 프로그래머스 문제와 동일함 - 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음 구조를 어떻게 잡아야 할까 고민이 크게 되었다. 일단 1~len(s)까지 단위로 잘라서 각자의 총 길이 최소값을 비교하여 min값에 저장하고 최종적으로 저장된 min 값을 제출한다는 개념을 잡았다. 다음으로는 남은 문자가 비교할 수 없이 짧은 경우와 비교가능한 경우로 나누고 각각을 n==1인경우와 그렇지 않은 경우로 나누어서 구현 하였..

(기출 / 구현) 문자열 재정렬

문자열 재정렬 알파벳 대문자와 숫자(0 ~ 9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다. 입력 조건 첫째 줄에 하나의 문자열 S가 주어집니다. ( 1≤ S의 길이 ≤ 10,000 ) 출력 조건 첫째 줄에 문제에서 요구하는 정답을 출력합니다. 입력 1 K1KA5CB7 출력 1 ABCKK13 입력 2 AJKDLSI412K4JSJ9D 출력 2 ADDIJJJKKLSS20 풀이 숫자를 더하는 변수와 알파벳을 모으는 변수를 분리시켰다. 어차피 알파벳은 sort함수로 한번에 정렬할 수 있으니 그냥 알파벳인가 아닌가에 따라 appe..

(기출 / 구현) 럭키 스트레이트

럭키 스트레이트 게임의 아웃복서 캐릭터는 필살기인 '럭키 스트레이트' 기술이 있습니다. 이 기술은 매우 강력한 대신에 게임 내에서 점수가 특정 조건을 만족할 때만 사용할 수 있습니다. 특정 조건이란 현재 캐릭터의 점수를 N이라고 할 때 자릿수를 기준으로 점수 N을 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 더한 값이 동일한 상황을 의미합니다. 예를 들어 현재 점수가 123,402라면 왼쪽 부분의 각 자릿수의 합은 1 + 2 + 3, 오른쪽 부분의 각 자릿수의 합은 4 + 0 + 2이므로 두 합이 6으로 동일하여 럭키 스트레이트를 사용할 수 있습니다. 현재 점수 N이 주어지면 럭키 스트레이트를 사용할 수 있는 상태인지 아닌지를 알려주는 프로그램을 작성하세요. 입력 조건 첫..

(실전/구현) 게임 개발

게임 개발 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 X 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 회전한 다음..

(실전/구현) 왕실의 나이트

왕실의 나이트 행복 왕국의 왕실 정원은 체스판과 같은 8 × 8 좌표 평면이다. 왕실 정원의 특정한 한 칸에 나이트가 서있다. 나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다 나이트는 말을 타고 있기 때문에 이동을 할 때는 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없다 나이트는 특정 위치에서 다음과 같은 2가지 경우로 이동할 수 있다 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 이처럼 8 × 8 좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하라. 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하며, 열 위치를 표현할 때는 a 부터 h로 표현한다 입력 첫..

(예제/ 구현) 시각

시각 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하라. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다 00시 00분 03초 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다 00시 02분 55초 01시 27분 45초 입력 첫째 줄에 정수 N이 입력된다.(0

(예제 / 구현) 상하좌우

상하좌우 여행가 A는 N × N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 × 1 크기의 정사각형으로 나누어져 있다. 가장 왼쪽 위 좌표는 (1, 1)이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당한다. 여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며, 시작 좌표는 항상 (1, 1)이다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 놓여 있다 계획서에는 하나의 줄에 띄어쓰기를 기준으로 L, R, U, D 중 하나의 문자가 반복적으로 적혀있다. 각 문자의 의미는 다음과 같다 L: 왼쪽으로 한 칸 이동 R: 오른쪽으로 한 칸 이동 U: 위로 한 칸 이동 D: 아래로 한 칸 이동 이때 여행가 A가 N × N 크기의 정사각형 공간을 벗어나는 움직임은 무시된다 예를 들어 (1, 1..

(유형별 기출/그리디) 볼링공 고르기

볼링공 고르기 A,B 두 사람이 볼링을 치고 있습니다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 합니다. 볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여됩니다. 또한 같은 무게의 공이 여러 개 있을 수 있지만, 서로 다른 공으로 간주합니다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재합니다. 예를 들어 N이 5이고, M이 3이며 각각의 무게가 차례대로 1,3,2,3,2일 때 각 공의 번호가 차례대로 1번부터 5번까지 부여됩니다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같습니다. (1번, 2번), (1번, 3번), (1번, 4번), (1번, 5번), (2번, 3번), (2번, 5번), (3번, 4번), (4번, 5번) ..

728x90
반응형