본문 바로가기

728x90

알고리즘

[프로그래머스/JAVA] 코딩테스트 연습 > 연습문제 > 연속 부분 수열 합의 개수(by 다알쥐AI) [연속 부분 수열 합의 개수] 코딩테스트 연습 > 연습문제 > 연속 부분 수열 합의 개수  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다.원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다.원형 수열의 모든 원소 elements가 순서대로 주어질 때, 원형 수열의 연속 부분 수열 합.. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > 2017 팁스타운 > 예상 대진표 (by 다알쥐AI) [예상 대진표] 코딩테스트 연습 > 2017 팁스타운 > 예상 대진표  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 .. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > 연습문제 > 멀리뛰기 (by 다알쥐AI) [멀리뛰기] 코딩테스트 연습 > 연습문제 > 멀리뛰기  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는(1칸, 1칸, 1칸, 1칸)(1칸, 2칸, 1칸)(1칸, 1칸, 2칸)(2칸, 1칸, 1칸)(2칸, 2칸)의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. 제한 사항n은 1 이상, 2000 이하인 정수입니다.입.. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > Summer/Winter Coding(~2018) > 영어 끝말잇기(by 다알쥐AI) [영어 끝말잇기] 코딩테스트 연습 > 연습문제 > Summer/Winter Coding(~2018) > 영어 끝말잇기  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → .. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > 연습문제 > N개의 최소공배수 (by 다알쥐AI) [N개의 최소공배수] 코딩테스트 연습 > 연습문제 > N개의 최소공배수  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항arr은 길이 1이상, 15이하인 배열입니다.arr의 원소는 100 이하인 자연수입니다.입출력 예[간단설명]주어진 배열의 모든 숫자의 최대공배수 .. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > Summer/Winter Coding(~2018) > 점프와 순간 이동 (by 다알쥐AI) [점프와 순간 이동 ] 코딩테스트 연습 > Summer/Winter Coding(~2018) > 점프와 순간 이동   ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단,.. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기 (by 다알쥐AI) [짝지어 제거하기] 코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면b aa baa → bb aa → aa →의 순서로 문자열을 모두.. 더보기
[프로그래머스/JAVA] 코딩테스트 연습 > 연습문제 > 피보나치 수 (by 다알쥐AI) [피보나치 수] 코딩테스트 연습 > 연습문제 > 피보나치 수  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) = F(2) + F(3) = 1 + 2 = 3F(5) = F(3) + F(4) = 2 + 3 = 5와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.제한 사항n은 2 이상 100,000 이하인 자연수입니다.. 더보기

728x90