목록C++ (53)
have to do_yeon

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 처음 틀을 잡을 때, N전째 손님이면 호수 = (N / H) + 1, 층 = N % H 아닐까? 하고 시작했다.이때 중요했던 점이 N % H == 0 일 때였는데, 이때는 아예 따로 분리해서 다시 지정하는 방법으로 해결했다. (if문 참고) 사실 이 문제... 여행 가서 정신없이 풀었던 문제라 기억이 정확하게 나지는 않는다. 정확한 풀이과정도 기억이 나지 않지만 시간내어 열심히 풀었던..

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 브루트포스 알고리즘은 규칙을 찾기 전까지 정말 일일이 하나하나 다 해보는 방법이 최선이라고 해서... 정말 일일이 더해서 비교해보았다. 제출 답안 #include using namespace std; int main(void){ int n, m; cin>> n >> m; int card[n], sum = 0; for(int i = 0; i < n; i++){ cin..

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 같은 줄 (중앙에서부터 각 한 겹) 에 있는 벌집의 경우 출력값이 같다. 이것을 가지고 규칙성을 구하고자 했다. 1 : 1개 2 ~ 7 : 2개 8 ~ 19 : 3개 20 ~ 37 : 4개 38 ~ 61 : 5개 이렇게 보면 규칙성이 없는 것 같아 보이지만, 끝 수를 보면, 1 / 7 / 19 / 37 / 61 ... 이고, 각 수의 차를 구하면 6 / 12 / 18 / 24 ... 이고, 6씩 커지는 규..
1. 매개변수의 디폴트 값 설정 가능. 함수호출 시 인자를 전달하지 않으면 디폴트 값이 전달된 것으로 간주. int MyFunc(int num = 7){ ... } 2. 디폴트 값이 두 개 이상 설정되어 있으면, 그것보다 적은 수의 인자전달이 가능하다. 인자는 왼쪽부터 채워 나가고, 부족분은 디폴트 값으로 채워진다. 3. 디폴트 값은 함수의 선언 부분에만 표현. 4. 그러나 매개변수의 디폴트 값을 비우는 형태로는 조건이 있음. ① 오른쪽 매개변수의 디폴트 값부터 채우는 형태로 정의. int YourFunc(int num1, int num2 = 20, int num3 = 30 ){ ... } ② 왼쪽부터 넣은 것은 유효하지 않음. int WrongFunc(int num1 = 10, int num2 = 20..
return 0; 또는 return; 은 해당 함수를 정상적으로 끝내고서 운영체제에게 기술한 값을 반환하고 현재 실행 중인 해당 함수를 벗어나겠다는 뜻이다. int main() { ... return 0; } main 함수가 마지막에 0을 리턴해주는 이유는 프로그램이 어떠한 에러 없이 잘 종료가 되었다는 것을 알리기 위함이다. 그런데 꼭 써주지 않더라도 프로그램이 별 문제 없이 잘 종료 되었다면 main 함수가 알아서 0 을 리턴하게끔 편하게 바뀌었기 때문에, 종료가 확실하게 되는 상황이면 생략해도 문제는 없다. 그러나 main 함수가 아닌 다른 int 형 함수들은 정수를 반환하는 return 문을 반드시 써야 한다. 출처 >> https://m.blog.naver.com/chsunspace/220897..

https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 반복문을 돌리면서 각 숫자의 분해합이 N과 같은지 확인하는 방법밖에 없다고 판단했다. 먼저, 생성자는 분해합보다 작다는 것을 인지해야한다. ( 반복문에서 i < n 하면 조금이나마 빨리 출력할 수 있다 ㅎㅎ ) 마지막 출력 부분에서 return을 활용하면 간단하게 코드를 마무리 할 수 있다. 제출 답안 #include using namespace std; int mai..

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 직각삼각형일 때 활용 가능한 피타고라스 공식 ( a < c, b < c 일 때, a² + b² = c² ) 을 활용한다. 조건문 사용 전 가장 긴 변을 먼저 판별하는 방법도 생각해보았으나, 선언해야 할 문자가 많아지고, 코드가 길어지며, 결국 조건문을 사용해야 하므로 그냥 조건문에 피타고라스 공식을 넣어 판별하도록 했다. 피타고라스 공식을 조건으로 하는 조건문에 else if 를 사용하였는데, if를 넣어도 정상적..

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 상하좌우 네 가지 경우의 수를 모두 구하여 최솟값을 출력하도록 했다. 선언을 최대한 간략하게 하고 싶었고, 반복문을 사용하기 위하여 정수 배열을 활용하여 해결했다. 제출 답안 #include using namespace std; int main(void){ int a[4]; cin>> a[0] >> a[1] >> a[2] >> a[3]; a[2] = a[2] - a[0]; a[..