본문 바로가기

Algorithm61

[프로그래머스 Programmers] 소인수분해 문제 설명 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한 사항 2 ≤ n ≤ 10,000 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 코드 using System; using System.Collections.Generic; using System.Linq; public class Sol.. 2024. 2. 22.
[백준 BAEKJOON] 2557번 Hello World 문제 Hello World!를 출력하시오. 입력 없음 출력 Hello World!를 출력하시오. 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 풀이 코드 using System; class Program { static void Main() { Console.WriteLine("Hello World!"); } } 2024. 2. 16.
[프로그래머스 Programmers] 실패율 문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변.. 2024. 2. 2.
[프로그래머스 Programmers] 명예의 전당(1) 문제 설명 "명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다. 이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일 동안 진행된 가수.. 2024. 2. 2.
[프로그래머스 Programmers] 두 정수 사이의 합 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 사항 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 코드 using System; public class Solution { public long sol.. 2024. 1. 30.
C# 퀵 정렬(Quick Sort)에 대해서 퀵 정렬이란? 이름부터 퀵 정렬이기 때문에 빠르다. 그렇다면 퀵 정렬은 어떤 정렬인가? '찰스 앤토니 리처드 호어(Charles Antony Richard Hoare)'가 개발한 정렬 알고리즘 분할 정복(divide and conquer) 방법 분할, 정복, 결합의 과정으로 진행 불안정 정렬, 비교 정렬 분할 정복 알고리즘에 속하며 평균적으로 매우 빠른 수행 속도를 자랑한다. 퀵 정렬 수행과정 배열의 첫 번째 값을 피벗(pivot)으로 설정한다. low는 left + 1 자리부터 피벗과 비교해서 작으면 한 칸씩 증가한다. high는 right 자리에서부터 피벗과 비교해서 크면 한 칸씩 감소한다. low와 high가 결정되면 서로 스왑한다. 위의 절차를 반복한다. low와 high가 교차하면 정지한다. 피.. 2024. 1. 23.