본문 바로가기
728x90

C++18

[C++][백준] 1990 소수인팰린드롬 이번 문제는 소수판정과 팰린드롬 판정을 하는 문제이다.문제151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다.팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되고 이 두 수가 다르기 때문에 팰린드롬이 아니다. 두 정수 a, b가 주어졌을 때, a이상 b이하인 소수인 팰린드롬을 모두 구하는 프로그램을 작성하시오. 입력입력은 첫째 줄에 공백으로 구분된 두 자연수 a, b가 주어진다. 단 5 ≤ a  출력첫째 줄부터 차례로 증가하는 순서대로 한 줄에 한개씩 소수인 팰린드롬을 출력한다. 마지막 줄에는 -1을 출력한다. 아이디어 소수를 판정하기 위해서는 에라토스테네스의 체 방법을 사용하는 것이 편하다.에라토스테네스의.. 2024. 7. 1.
[C++][백준] 1074 Z 이 문제는 재귀를 사용하는 문제이다.문제한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다.N > 1인 경우, 배열을 크기가 2N-1 × 2N-1로 4등분 한 후에 재귀적으로 순서대로 방문한다.다음 예는 22 × 22 크기의 배열을 방문한 순서이다.N이 주어졌을 때, r행 c열을 몇 번째로 방문하는지 출력하는 프로그램을 작성하시오.다음은 N=3일 때의 예이다.입력첫째 줄에 정수 N, r, c가 주어진다.출력r행 c열을 몇 번째로 방문했는지 출력한다. 처음에는 2^15인 2차원 배열을 만든 다음 재귀 함수를 돌려 순차적으로 채워나가는 것을 생각해봤다.그렇지만 시간제한이 0.5초.. 2024. 7. 1.
[C++][백준] 11729 하노이 탑 이동 순서 이번 문제는 재귀를 이용한 하노이탑 문제이다.문제세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다.1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다.두 번째 줄부터 수행 과정을 출력한다. 두 번째 .. 2024. 6. 28.
[C++][백준] 15649 N과 M(1) 이번 문제는 재귀함수를 사용한 백트래킹 문제이다.백트래킹이 뭘까?모든 경우의 수를 전부 고려하는 알고리즘으로 특정 해를 찾다가 해의 조건이 아니게 되면 다시 돌아가는 과정을 반복해 모든 해를 찾는 방법이다. 트리와 같은 구조에서 유용하다. 문제자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.- 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열  입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)  출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다. 머릿속으로 생각하기에는 .. 2024. 6. 28.
[백준][C++] 10951 A+B - 4 (EOF) 이번 문제는 EOF관련한 문제이다.EOF가 뭘까?컴퓨팅에서, 파일 끝(End of File, EOF)은 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다.-위키백과 즉 프로그램을 돌리면서 파일을 입력받다가, 파일의 끝에 다다르게 되면 파일의 끝을 만났음을 알리기 위해 매크로로 정의된 EOF 값을 리턴하는 것이다. 문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력입력은 여러 개의 테스트 케이스로 이루어져 있다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 출력각 테스트 케이스마다 A+B를 출력한다.나의 코드#includeusing namespace std;int main(){ int a, b; while(1){.. 2024. 6. 26.
[백준][C++] 11650 좌표 정렬하기 이번 문제는 C++ algorithm, vector STL을 이용해서 쉽게 해결할 수 있었다.문제2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.입력첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 x(i)와 y(i)가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.출력첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.나의 코드#includeusing namespace std;bool Cromsort(pair p1, pair p2){ if(p1.first == .. 2024. 6. 23.
728x90
반응형