분류 전체보기 120

[백준 11399] ATM

ATM 문제설명 사람의 수를 입력받고, 사람당 걸리는 시간을 입력 받는다. 사람들이 돈을 인출하는데, 최소한의 시간 합을 구해서 출력시켜라. 알고리즘 사람의 수와 각 사람당 걸리는 시간을 입력 받는다. 걸리는 시간을 오름차순으로 정렬한다. 반복문을 사용해서 각 사람이 걸리는 시간을 더해주고, 이전 사람이 걸렸던 시간까지 누적해서 더한다. 결과를 출력한다. #include #include #include #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; // 사람수 입력 vector v; while (N) { i..

Algorithm 2021.07.29

[백준 11726] 2xN 타일링

문제설명 n의 값을 입력 받고 타일로 채우는 방법의 수를 출력하는 문제이다. 단, 출력시 10007로 나눈 나머지를 출력시킨다. 알고리즘 n의 값을 입력 받는다. bottom-up방식으로 배열에 값을 저장 하는데 런타임 에러방지를 위해 10007로 나눈 나머지를 저장한다. 해당하는 값을 출력한다. #include #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; // n값 입력 int arr[1001]; arr[0] = 1; arr[1] = 2; for (int i = 2; i < N; i++) arr[i] = (arr[i - 1] + arr..

Algorithm 2021.07.29

[백준 11723] 집합

집합 문제설명 첫 줄에 명령의 수를 입력 받고, 위의 사진대로 명령이 수행되도록 구현한다. 알고리즘 입력할 명령어의 수를 입력 받는다. 각 명령어 별로 확인을 하고 알맞은 수행을 한다. 시간 절약을 위해서 직접 값을 찾지 않고, 값의 범위가 1~20이므로 배열에 존재하면 1, 그렇지 않으면 0으로 표기하여 수행한다. #include #include #include #include #include #include using namespace std; int main(void) { int N; cin >> N; int v[21] = { 0, }; ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); while (N)//회의실 정보 입력받기 { string s; ..

Algorithm 2021.07.29

[백준 1931] 회의실 배정

회의실 배정 문제설명 회의의 수를 입력 받고, 각 회의마다 시작시간과 종료시간을 입력 받는다. 최대한 많은 회의를 선택하여 그 갯수를 출력하면 된다. 알고리즘 필요한 입력 값들을 모두 입력 받는다. 벡터에 담아 정렬하되, 종료시간을 기준으로 오름차순으로 정렬한다. 정렬한 벡터를 차례대로 조회하여 현재 회의 종료시간이 다음 회의 시작 시간과 겹치는지 확인하고 겹치지 않으면 선택한다. 선택할 때 회의의 수를 카운트하고 조회가 끝나면 그 수를 출력한다. #include #include #include #include #include using namespace std; bool cmp(const pair &a, const pair &b) { if (a.second == b.second)//종료시간이 같으면 r..

Algorithm 2021.07.29

[백준 1541] 잃어버린 괄호

잃어버린 괄호 문제설명 첫 줄에 수식을 입력받고 괄호를 마음대로 배치해서 최대한 작은 값을 만들어 출력한다. 알고리즘 수식을 입력 받는다. 뺄셈 부호를 만나면 체크 할 수 있도록 확인하는 bool형 변수와 숫자를 담을 수 있는 변수를 만든다. 수식을 각각 읽으면서 부호를 만나거나, 문장의 끝부분을 만나면 sum이라는 결과를 저장하는 변수에 연산을 진행한다. 문자열 처리중에 -를 만나면 bool형 변수를 true로 변경시킨다 반복문 내에서 부호나 문장의 끝부분을 만나지 않은 경우에는 string형 temp 변수에 저장한다 bool형 변수가 true인 경우 모두 뺄셈을 진행하고 그렇지 않은 경우 덧셈을 진행한다 결과 값을 출력한다. #include #include #include #include using ..

Algorithm 2021.07.29

[백준 1181] 단어 정렬

단어 정렬 문제설명 단어의 수를 입력받고 정렬한다. 조건1) 길이가 짧은 것 부터 조건2) 길이가 같으면 사전순으로 조건에 따라 정렬하고 중복 된 단어는 한 번만 출력한다. 알고리즘 단어의 수를 입력 받고, 단어도 입력 받는다. 벡터에 단어와 단어 길이 또한 같이 저장한다. cmp함수로 정렬한다. unique를 활용하여 중복되는 단어는 지운다. 벡터를 출력한다. #include #include #include #include #include #include using namespace std; bool cmp(const pair &a, const pair &b) { if (a.second == b.second)//단어의 글자 수가 같으면 return a.first < b.first;//사전순 return..

Algorithm 2021.07.29

[백준 9095] 1,2,3 더하기

1,2,3 더하기 문제설명 테스트 케이스 수를 입력 받고, 구하고자 하는 수를 입력 받은 뒤 그 정수를 1,2,3의 합으로 나타내는 총 방법의 수를 출력하라. 그리고 그 동작을 테스트 케이스 수만큼 반복한다. 알고리즘 테스트케이스와 구하고자 하는 수를 입력 받는다. 초기값을 저장한다. 연산에 필요한 만큼 반복문을 통해서 미리 계산한다. 값을 조회하여 알맞은 부분을 출력시킨다. #include #include #include using namespace std; int main(void) { int T; cin >> T;//테스트 케이스 수 입력 while (T) { int N;//계산하고자 하는 수 입력 int dp[12]; cin >> N; //초기값 dp[0] = 1; dp[1] = 2; dp[2] ..

Algorithm 2021.07.29

[백준 1764] 듣보잡

듣보잡 문제 설명 문제 설명은 사진과 같다. 알고리즘 N,M을 입력받고 이름까지 입력 받는다 이분탐색을 이용하기 위해 sort 함수로 정렬한다 이분 탐색을 해서 중복 된 값을 찾아낸다. #include #include #include #include #include #include using namespace std; int N, M; int main() { ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); vector v;//듣도 못한 사람 vector vs;//보도 못한 사람 cin >> N >> M; for (int i = 0; i > s; v.push_back(s); } for..

Algorithm 2021.07.29

[AWS] EC2 볼륨 확장

EC2 disk 용량 문제 프로젝트를 진행하면서 수정한 코드를 배포하기위해 파일을 직접 Filezilla로 옮겼는데, 용량문제로 필요한 파일들이 일부 들어가지지 않는 문제를 맞닥뜨렸다. EC2 볼륨 확장 과정 1. 해당 볼륨 탭에 들어가서 늘리려고 하는 인스턴스를 우클릭하여 볼륨을 수정해준다. 2. 확장하는데 시간이 10분이상 소요되니 기다린다. 3. Putty에 접속하여 직접 파일 시스템을 늘려준다. 4. 최적화가 완료된 뒤 다음과 같은 명령어를 입력해준다. df -h #현재 용량 상태 확인 lsblk #어떤 파티션을 조절해야하는지 파티션 상태 확인 sudo growpart /dev/xvda 1 #파티션 크기조정 (공백은 번호구분 용도) lsblk #다시 용량 변화확인 sudo resize2fs /de..

Back-end/Aws 2021.07.29

[백준 1074] Z

Z 문제설명 위의 그림처럼 2차원 배열을 z모양으로 탐색한다. R과 C가 주어질 때 몇 번째로 방문하는지 출력하도록 하자. 이때 2차원배열의 크기는 N으로 첫 줄에 주어진다. 2의 n승이 되도록 한다. 알고리즘 N, R, C를 divide 함수에 크기와 x,y좌표를 전달해서 4개로 나누어 탐색을 시작한다. divide함수는 조건이 있는데 해당하는 칸(x,y)좌표가 찾고자 하는 칸에 온다면 cnt값을 출력하고 종료한다. -> 현재 찾고자 하는 값에 도달했다는 의미이다. 만약에 크기가 1인 경우 각각 계산하도록 한다. 만약 찾으러 들어온 x,y의 좌표가 아예 구역에 해당하지 않고 다른 칸인 경우에는 제곱해서 계산을 더하고 종료시킨다. -> 시간 단축을 위함이다. 위의 경우에도 해당하지 않는 경우 분할을 더 ..

Algorithm 2021.07.29