알고리즘/programmers 279

[Programmers 위클리 챌린지 12주차] 피로도

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 12주차 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 던전의 개수는 최대 8개이므로 8! 경우의 수를 모두 돌아봐도 시간 내 해결할 수 있는 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 나머지가 1이 되는 수 찾기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/87389 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 간단한 구현 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers 위클리 챌린지 11주차] 아이템 줍기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/87694 코딩테스트 연습 - 11주차 [[1,1,7,4],[3,2,5,5],[4,3,6,9],[2,6,8,8]] 1 3 7 8 17 [[1,1,8,4],[2,2,4,9],[3,6,9,8],[6,3,7,7]] 9 7 6 1 11 [[2,2,5,5],[1,3,6,4],[3,1,4,6]] 1 4 6 3 10 programmers.co.kr 재미있는 구현 문제였습니다. 알고리즘은 아래와 같습니다. 1. 모든 직사각형의 테두리를 우선 방문 완료 표시해줍니다. 2. 모든 직사각형의 내부를 방문 제외해줍니다. 3. 1번과 2번을 완성하면 테두리가 완성이 되는데 (x, y), (x + 1, y) 좌표가 테두리..

[Programmers 위클리 챌린지 10주차] 교점에 별 만들기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 10주차 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr 최대 10,000이므로 곱할 경우 int의 범위를 벗어날 수 있습니다. ..

[Programmers] 빛의 경로 사이클

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr visited 배열을 y, x, 그리고 방향까지 3차원으로 정의해주는 것이 핵심인 문제였습니다. 알고리즘은 아래와 같습니다. 1. 가로길이를 벡터의 크기, 세로 길이를 문자열의 길이, 그리고 방향은 상하좌우 4로 선언해줍니다. 2. 1번처럼 설정해준 다음에는 모든 방향에 대해 BFS를 진행해주면 되는 문제였습니다. ..

[Programmers] 없는 숫자 더하기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 간단한 구현 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 110 옮기기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/77886 코딩테스트 연습 - 110 옮기기 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. x에 있는 "110"을 뽑아서, 임의의 위치에 다시 삽입합니다. 예를 programmers.co.kr 시간제한이 10초인 것 같습니다. 알고리즘은 아래와 같습니다. 1. 110은 1로 시작하기 때문에 문자열 내 마지막 0 뒤로 옮기는 것이 사전 순으로 앞에 오게 만드는 방법입니다. 2. 우선 110들을 주어진 문자열에서 제거하고 몇 개를 제거했는지 카운팅 합니다. 3. 남은 문자열 내 마지막 0 위치를 찾습니다. 3.1 ..

[Programmers] 2개 이하로 다른 비트

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 두 가지 경우의 수를 고려해야 하는 문제였습니다. 1. 짝수인 경우 끝 비트가 0이므로 1만 더해주면 됩니다. 2. 홀수인 경우 끝 비트가 1이기 때문에 1을 더해주면 비트가 상당히 많이 바뀝니다. 따라서, 짝수와는 다른 방법으로 접근해야 합니다. 2.1 끝에서부터 즉, 2^0승부터 연속되는 1의 개수 k를 구하고 2^(k-1)을 더해주면 비트가 최소로 바뀌는 다음 숫자를 구할 수 있습니다. 2.2 예를 들자면, 110111은 k가 3이므로 100을 더해주면 111011이 되고 비트는 두 개만 바뀌면서 11011..

[Programmers] 괄호 회전하기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 반시계 방향으로 문자열을 회전시키면서 올바른 괄호 문자열을 확인해봐야하는 문제였습니다. 순서대로 스택을 넣었을 때 올바른 괄호 문자열이라면 마지막에 스택이 비어있어야합니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 약수의 개수와 덧셈

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 약수의 개수가 홀수인 수는 제곱수입니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~