알고리즘/프로그래머스 6

[프로그래머스] Lv2. 삼각 달팽이

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 예시 입출력 제한 사항n은 1 이상 1,000 이하입니다. 처음 시도def solution(n): # n개의 빈 리스트를 생성한다. answer = [[] for _ in range(n)] # 채워진 배열을 나타내는 리스트 full = [False for _ in range(n)] # 젤 아래 리스트를 나타내는 수 ground = n - 1 # 위로 갈지(1..

[프로그래머스] Lv2. 행렬 테두리 회전하기

https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제일단, 위 문제 설명만을 읽었을 때 한번에 이해되지 않았다. 아래의 예시를 통해 쉽게 이해할 수 있었다. 예시 위의 왼쪽 예시는 rows와 columns가 각각 6, 6으로 주어졌을 때의 초기 행렬의 모습이다.이때, queries도 함께 주어지는데, queries의 첫 번째 요소인 [2, 2, 5, 4] 리스트를 적용했을 때의 예시이다.[2, 2, 5, 4] 리스트의 의미는 직사각형의 범위를 지정..

[프로그래머스] Lv2. 거리두기 확인하기

문제 설명P: 사람X: 파티션O: 테이블사람과 사람 간의 거리는 맨해튼 거리 2 이하일 경우 코로나 바이러스 감염 예방 규칙을 위배하는 것이다.맨해튼 거리란 두 사람의 좌표가 각각 (x1, y1), (x2, y2)일 때, |x1-x2| + |y1-y2|의 크기를 의미한다.각각의 강의실에 배치된 사람들이 감염 예방 규칙을 잘 이행한 경우 1, 이행하지 않은 경우 0을 반환하고,최종적으로 각각의 강의실에 대한 반환을 하나의 리스트에 담아 반환하면 된다. 제한 사항제한 시간 : 10초 입출력 예시 첫 번째 시도def check_border(place, i, j): border = [(-1,-1), (-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1)] for dx, dy..

[프로그래머스] Lv2. 행렬의 곱셈

https://school.programmers.co.kr/learn/courses/30/lessons/12949?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해라. 입출력 제한 사항행렬 arr1, arr2의 행과 열의 길이는 2이상 100 이하입니다.행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다. 답 도출가능하다면 나는 기본적으로 항상 문제를 가장 단..

[프로그래머스] 외계어 사전 문제 : sort와 sorted

문제 설명입력 파라미터spell : 알파벳이 담긴 리스트dic : 외계어 문자열이 담긴 리스트→ spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 있다면 1 반환, 없다면 2 반환입출력 예spelldicresult["p", "o", "s"]["sod", "eocd", "qixm", "adio", "soo"]2["z", "d", "x"]["def", "dww", "dzx", "loveaw"]1["s", "o", "m", "d"]["moos", "dzx", "smm", "sunmmo", "som"]2슈도 코드# dic의 모든 요소를 조회# 조회한 문자열 요소를 리스트로 만든다. -> 어떻게?# 리스트를 sort() 한다.# spell 리스트도 sort() 한다.# 비교한다. 있으면 1 리턴풀이..

StringBuilder

글자 이어 붙여 문자열 만들기 : https://school.programmers.co.kr/learn/courses/30/lessons/181915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다른 사람 풀이 class Solution { public String solution(String my_string, int[] index_list) { StringBuilder sb = new StringBuilder(); for (int idx : index_list) sb.append(my_string.charAt(idx)); return sb.toStr..