🌿Algorithm 126

✏️ [백준 10974] 모든 순열

1. 문제 www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 접근 방법 순열을 만들면 됩니다용 range로 1부터 N까지의 list를 하나 만들어서 순열을 순서대로 만들면 사전순으로 출력됩니당 3. 코드 python def perm(n): global answer, visited if n == N: print(*answer, sep=" ") return for i in range(N): if not visited[i]: visited[i] = True answer.append(lst[i]) perm(n+1) visited[i] = False a..

Algorithm/Python 2021.05.10

✏️ [백준 10973] 이전 순열

1. 문제 www.acmicpc.net/problem/10973 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 2. 접근 방법 1. 뒤에서부터 x > y인 부분 찾기 2. y_idx 이후부터 끝까지 중 : x보다는 작으면서 가장 큰 값(max)을 찾음 3. max와 x를 swap 4. max_idx 이후부터 맨 마지막까지 역 sort -> 다음 순열이랑 달리 2번에서 x보다는 작으면서 라는 조건이 들어가야하는데 이거를 간과해서 틀렸음 ^-^ㅠ 3. 코드 python def find(): global nums for i in range(len(nums)-1, 0, -..

Algorithm/Python 2021.05.09

✏️ [프로그래머스] 프린터

1. 문제 programmers.co.kr/learn/courses/30/lessons/42587?language=javascript 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 2. 접근 방법 push, shift 메서드를 사용해서 풀었다. Math.max사용하려고 전개 구문 사용했다. 3. 코드 Javascript function solution(priorities, location) { var answer = 0; let queue = []; for (let i=0; i 0) { let now = pri..

✏️ [프로그래머스] 멀쩡한 사각형

1. 문제 programmers.co.kr/learn/courses/30/lessons/62048?language=javascript 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 2. 접근 방법 처음에 일차함수로 접근해서, 아래쪽 부분만 다 더해주고 *2로 해줬다. 근데 이렇게 할 경우 테스트 6번 빼고 모두 통과한다. 6번이 왜 안되는지 확인해봤더니, 기울기 값이 오차범위 때문에 일부 값이 손실되어서 반환 값이 다르게 나온다고 한다. ㅋㅋㅋㅋㅋㅋㅋㅋ ㅠㅠ 그래서 w, h 중 더..

✏️ [프로그래머스] 오픈채팅방

1. 문제 programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 2. 접근 방법 Object써서 key에 uid를 담고 value에 nickname을 담아서 nickname을 모두 갱신 한 다음, 각 명령에 맞는 메시지를 출력해줬다. 3. 코드 Javascript function solution(records) { var answer = []; let name = new Object() let temp = []; for (let..

✏️ [프로그래머스] 문자열 압축

1. 문제 programmers.co.kr/learn/courses/30/lessons/60057?language=javascript 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 2. 접근 방법 앞에서부터 n개씩 잘라서 같은 경우 숫자로 바꿔준다. 여기서 숫자로 바꾸다가 현재 최소 길이보다 크면은 break조건을 넣어줬따. 3. 코드 Javascript function solution(s) { var answer = s.length; if (s.length === 1) { return 1; } fo..

✏️ [프로그래머스] 기능개발

1. 문제 programmers.co.kr/learn/courses/30/lessons/42586?language=javascript 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 2. 접근 방법 파이썬으로 풀 때는 progresses 기준으로 확인했는데, 이번에는 날짜를 기준으로 확인했다. 1. 현재 날짜에 맨 앞에 있는 작업이 완료되는지 2. 완료된다면: 언제까지 완료되는지 하나씩 확인 3. 완료되지 않는다면: 완료된 항목이 있는지 확인 3-1. 완료된 항목이 있다면: 현재까지 완료된 항목의 갯수..

✏️ [프로그래머스] 짝수와 홀수

1. 문제 programmers.co.kr/learn/courses/30/lessons/12937?language=javascript 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 2. 접근 방법 나머지를 비교하면 됩니다요 3. 코드 Javascript function solution(num) { var answer = ''; if (num%2 == 0) { answer = 'Even' } else { answer = 'Odd' } retur..

✏️ [프로그래머스] 자릿수 더하기

1. 문제 programmers.co.kr/learn/courses/30/lessons/12931 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 2. 접근 방법 숫자를 하나씩 나눠서 각각 더해줬습니다. 3. 코드 JS function solution(n) { var answer = 0; let nums = String(n).split("") nums.forEach(num => answer += Number(num)) return an..

✏️ [해시] 완주하지 못한 선수

1. 문제 programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 2. 접근 방법 파이썬으로 풀 때는 해시로 접근해서, 얘는 어떻게 해야하나 고민하다가 그냥 소트해서 앞에서부터 있는지 없는지 확인했습니다. 3. 코드 JavaScript function solution(participant, completion) { var answer = ''; participant.sort() completion.sort() ..