본문 바로가기

문자열8

[백준/C,C++] 10993번: 별 찍기 - 18 https://www.acmicpc.net/problem/10993 10993번: 별 찍기 - 18 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 풀이 위 그림처럼 별을 찍으면 되는 문제입니다. 재귀를 이용해 별을 찍는 문제들에서 배열에 값을 저장한 후 찍는 것이 아닌 해당 좌표에 '*' 이 출력돼야 하는지 공백이 출력돼야 하는지 바로 판단하여 출력하는 식으로 함수를 구현하려고 했고, 이번 문제 또한 배열을 쓰지 않는 방법으로 해결하였습니다. 가장 큰 삼각형 단계부터 가장 작은 삼각형 단계까지 재귀 호출합니다. 해당 좌표가 현재 삼각형 단계에서 '*' 로 출력될 자리인지 판단하고 아니라면 다음으로 작은 삼각형 단계로 재귀 호출하는데, 1 크기의 삼각형이 될 때까지 '*'.. 2021. 5. 18.
[백준/C,C++] 10610번: 30 www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 풀이 30의 배수는 끝자리가 0으로 끝남과 동시에 3의 배수여야 합니다. 즉 입력된 수의 각 자릿수에 0이 하나라도 존재해야 하고, 각 자릿수를 모두 더한 합이 3의 배수여야 합니다. 두 조건을 충족한다면 입력된 수의 각 자릿수를 큰 숫자부터 출력해주면 됩니다. #include using namespace std; int main(void) { int cnt[10] = { 0, }; string s; cin >>.. 2021. 4. 20.
[백준/C,C++] 5430번: AC www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 정말 풀기 짜증 났던 문제입니다.. 문제의 요지는 R과 D 함수의 내용에 대해 있는 그대로 코딩을 하면 안 됩니다. 시간 초과 때문에 뒤집은 것처럼 원소에 대해 접근하거나 출력해주면 됩니다. 그리고.. 배열을 입력받을 때, 숫자가 3자리까지 입력될 수 있기 때문에 문자 하나하나를 비교해서 배열로 바로 입력해버리면 안 됩니다. 예제 입력으로는 배열의 원소들이 전부 1자리이기 때문에 이런 반례를 발견하기 쉽지 않습니다. 문제 자체의 구현은 어렵지 않으나, 자잘한 실수를 .. 2021. 3. 16.
[백준/C,C++] 1541번: 잃어버린 괄호 www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 괄호를 쳐서 해당 식의 값을 최솟값으로 만들기 위해선 덧셈끼리 묵어 가장 큰 수를 만든 뒤 빼야 합니다. 가령 100+200-300+400과 같은 식이 있다면 (100+200)-(300+400)으로 식을 고쳐주면 최솟값이 나오죠. 그런데 100+200-300+400-500+600+700-800+900과 같은 식이 있다면 100+200-(300+400)-(500+600+700)-(800+900)으로 식을 고.. 2021. 3. 14.