알고리즘 146

백준 1181 : 단어 정렬

문제 링크입니다 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 알파벳 소문자로 이루어진 N개의 단어가 입력으로 주어지면 단어들을 조건에 따라 정렬하여 출력하는 문제였습니다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력해야 했습니다. 조건은 다음과 같고, 길이가 짧은 것부터 길이가 같으면 사전 순으로 단어를 입력받고 string 벡터에 모든 단어를 push하고, 위 조건에 맞게 compare 함수를 만들어 정렬한 후 처음부터 ..

프로그래머스 LEVEL 1 : 제일 작은 수 제거하기

문제 링크입니다 https://programmers.co.kr/learn/courses/30/lessons/129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열을 입력받아 가장 작은 수를 제거한 배열을 반환하는 함수를 작성하는 문제였습니다. 입력으로 주어진 배열에서 가장 작은 값을 제거한 그대로 반환해야하고, 배열의 원소가 한 개밖에 없으면 가장 작은 수를 제거했을 때 원소가 남지 않으므로 -1을 저장한 배열을 리턴합니다. [소스코드]

프로그래머스 LEVEL 1 : 최대공약수와 최소공배수

문제 링크입니다 https://programmers.co.kr/learn/courses/30/lessons/12940 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수를 완성하는 문제였습니다. 유클리드 호제법을 사용해 최대공약수를 구하고, 구한 최대공약수를 이용해 최소공배수를 구하면 되는 문제였습니다. [소스코드]

프로그래머스 LEVEL 1 : 하샤드 수

문제 링크입니다 https://programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 자연수 x를 입력받아 하샤드 수인지 아닌지 검사하는 함수를 완성하는 문제였습니다. x의 자릿수의 합으로 x가 나누어 떨어지면 x는 하샤드 수입니다. x가 0이 될 때까지 계속 10으로 나눠주고, 그때의 나머지를 계속 누적하여 더한 값으로 x를 나눴을 때 나머지가 0이면 true를 반환하도록 했습니다. [소스코드]

프로그래머스 LEVEL 1 : 행렬의 덧셈

문제 링크입니다 https://programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 개의 행렬을 입력받아, 행렬 덧셈의 결과를 반환하는 함수를 작성하는 문제였습니다. 행렬은 벡터 안의 벡터가 있는 2차원 배열 형태이므로 각 행마다 벡터 하나를 만들어 해당 행의 모든 원소를 더한 값을 넣고, 그 벡터를 정답 벡터에 다시 넣는 형태로 문제를 해결했습니다. [소스코드]

프로그래머스 LEVEL 1 : 예산

문제 링크입니다 https://programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 반환하도록 함수를 완성하는 문제였습니다. 매개변수로 주어진 배열을 오름차순으로 정렬하고 예산보다 작거나 같으면 정답 변수를 +1 하고 예산에서 신청한 금액을 하나씩 빼보면서 예산이 부족해지는 순간 정답을 반환하면 되는 문제였습니다. [소스코드]

백준 15666 : N과 M(12)

문제 링크입니다 https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 주어지는 N개의 자연수 중 같은 수가 있을 수도 있습니다. 조건은 다음과 같고, N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를..

백준 15665 : N과 M(11)

문제 링크입니다 https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 주어지는 N개의 자연수 중 같은 수가 있을 수도 있습니다. 조건은 다음과 같고, N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. '15664번 N과 M(10)' 문제(https://seokeeee.tistory.com/152)에서 중복..

백준 15664 : N과 M(10)

문제 링크입니다 https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 주어지는 N개의 자연수 중 같은 수가 있을 수도 있습니다. 조건은 다음과 같고, - N개의 자연수 중에서 M개를 고른 수열 - 고른 수열은 비내림차순이어야 한다. → 길이가 K인 수열 A가 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림..