본문 바로가기

Algorithm/BackJoon49

1373번: 2진수 8진수 - 문제 사이트: https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 입력 받은 2진수를 8진수로 변환해주는 문제이다. 끝 문자부터 3자리씩 잘라서 8진수로 변환해주었다. 1) 끝에서 앞으로 세번째 index 확인: start → 해당 값이 마이너스일 경우, 0으로 변환 2) 1) 기준 세 문자로 자를 시, 마지막 index 확인 = start + 2 = end 3) start 부터 end 까지 문자열 잘라내기 4) 잘라낸 문자열을 8진수로 변환: binToOct(string str) 5) 변환된 8진수 값을 string으로 저장해준 뒤, 모든 변환 .. 2023. 9. 5.
10820번: 문자열 분석 - 문제 사이트: https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 한 줄씩 입력 받고 입력 받은 문자열을 한 문자씩 비교하여 카운팅하는 문제이다. 이 때, 종료 조건을 적용해주지 않으면 오답으로 간주된다는 것을 주의하도록 한다. 0) 총 100번까지 반복 → 단, 입력 받는 문자열이 없을 시, 종료 1) 문자열 입력 받음: getline 2) 한 문자씩 비교하여 카운팅 2-1) 공백인지 확인 2-2) 숫자인지 확인: isdigit 2-3) .. 2023. 9. 4.
12789번: 도키도키 간식드리미 - 문제 사이트: https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 줄 서 있는 학생들은 queue 형태로 이동하고, 임시 공간에 서는 학생은 stack 형태로 이동한다. 이에 맞게 아래의 로직을 구현해주면 된다. 1) 비교할 수 있도록 현재 순서를 저장 (order) 2) 임시 공간 (stack) 가장 위의 학생이 현재 순서와 일치하는지 확인 3-1) 줄 서 있는 (queue) 가장 앞의 학생이 현재 순서와 일치한다면, 다음 학생 확인: or.. 2023. 9. 3.
11659번: 구간 합 구하기 4 - 문제 사이트: https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 정석적으로 풀면 문제 그대로 시작 번호부터 끝 번호까지 더해서 출력해주면 된다. 하지만, 이 경우 시작과 끝의 간격이 클 수록 계산하는데 시간이 오래 걸린다. 따라서, 로직 상으로는 맞지만 시간 초과 결과를 받게 된다. #include using namespace std; int main() { ios_base::sync_with_stdio(false); .. 2023. 9. 1.
2851번: 슈퍼 마리오 - 문제 사이트: https://www.acmicpc.net/problem/2851 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 누적 합을 계산하고 푸는 문제이다. 10개의 값이 주어졌을 때, 1) 모든 수를 합하기 전에 100에 도달한 경우 2) 모든 수를 합하였으나, 100에 도달하지 못한 경우 이렇게 두 케이스로 나누어 결과를 계산해주어야 한다. #include #include using namespace std; int main() { int num[10]; for (int& n : num) cin >> n; int sum1 = 0; int sum2 = 0; .. 2023. 8. 31.