분류 전체보기

백준 10811번 풀이문제 문제 이해먼저 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다.그리고 각각의 바구니 안에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. 그리고 a, b를 입력받아 a 와 b 번째 사이에 있는 숫자의 공들을 역순으로 바꿔야한다. ex) a = 1, b = 3이면 1 2 3 -> 3 2 1 이 되야한다.이걸 m만큼 반복해줘야한다. 문제 풀이이 문제를 쉽게 풀려면 알아야 하는 개념이 하나 있다. 바로 #include 헤더파일의 기능중 하나인 reverse() 함수에 대해 알아야한다.이름에서 짐작할수 있겠지만, resverse(arr + a, arr + b)는  arr[a] ~ arr[b] 까지의 숫자들을 역순으로 정렬해준다. 이 ..
백준 3052번 풀이문제 문제 이해지금부터 숫자 10개를 입력받을건데, 이 숫자들의 각각 42로 나눈 나머지들이 다른게 총 몇개 있는지 구해내면 되는문제이다. 예를 들어, 숫자 1, 2, 3이 있다고 가정하면 1 % 42 = 1, 2 % 42 = 2, 3% 42 = 3이니 나머지들은 1, 2, 3이 나오게 된다. 그렇다면 서로 다 다르기 때문에 3을 출력해주면 되는것이다. 문제 풀이앞 문제의 과제 안내신분..? 문제를 풀어보면 비교적 쉽게 푸는 방법을 떠올릴수있는 문제이다.과제 안내신분의 풀이는 아래 링크를 들어가면 된다. https://lovingcats.tistory.com/54 [백준 5597] 과제 안 내신 분..? | C++백준 5597번 풀이 문제 문제 이해X대학 M교수님은 프로그래밍 수업을 ..
백준 5597번 풀이 문제 문제 이해X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 여기서 1~30번까지 과제를 내지 않은 2명의 학생이 있는데, 그 학생들의 번호를 출력해주면 되는 문제이다. 문제 풀이먼저, 이 문제는 다른 방식으로 풀어야한다. 지금까지 arr[i] 번째 값을 직접 입력받는 형식이었다면, 이문제는 arr[출석 번호]에 값이 있냐 없냐를 판별하기 위해1이나 0을 넣어준다. 그런다음, 30번째까지 반복문을 돌리면서 arr[i] 값이 0인 것들만 출력해주면 정답이다. 위의 점들을 유의하며 문제를 풀어보자~! 풀이 코드#include using namespace std;int main() { i..
백준 10813번 풀이문제  문제 이해 먼저 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다.그리고 각각의 바구니 안에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다.  그리고 a, b를 입력받아 a 와 b 번째에 있는 숫자의 공을 서로 바꾼다.이걸 m만큼 반복해줘야한다. 문제 풀이먼저, n과 m을 입력받은후 문제에 "처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다." 라고 되어있으니 처음 초기값을 arr[i]에 넣어줘야한다. 그리고, a와 b를 입력받은뒤 arr[a] 와 arr[b]안에 있는 공의 위치를 서로 바꿔야한다. 그러기 위해서는 둘의 위치를 옮기기위해 하나의 공간(변수)를 하나더 생성해줘야한다.그걸 Temp라고 부르겠다. 이..
백준 10810번 풀이문제 문제 이해처음에 이 문제를 봤을때 대체 무슨말인가 싶었다. 간단하게 그림으로 보자.n = 4라고 가정했을때의 바구니의 모습이다.1~4까지의 숫자가 그려져있는 바구니가 있고 초기 상태에는 공이 들어있지 않다.참고로 1~4까지로 적혀있는 공의 수는 무한하다. 그리고 m = 3 이라고 가정했을때, m만큼 i, j, c를 입력받고 (반복문)i ~ j 의 범위만큼 c 숫자가  적혀있는 공을 하나씩 넣는것이다. 만약 바구니 안에 숫자의 공이 이미 존재한다면 빼고 넣으면 된다. 위의 점을 유의하며 문제를 풀어보자~ 문제 풀이이 문제는 바구니가 마치 배열이라고 생각하고 문제를 풀면된다. 먼저, 배열의 크기를 정할 n과 몇번 반복할건지를 정할 m을 입력받는다. 그리고 a, b, c를 입력받은뒤..
백준 2562번 풀이 문제  문제 이해9개의 자연수를 입력받은뒤에 가장 큰 자연수와, 그 자연수가 몇번째 수인지 출력하면 되는 문제이다. 다른 설명이 필요할 것 같지 않아 바로 풀이로 넘어가겠다. 문제 풀이최대값과 최대값이 몇번째 수인지 알기위해 배열 arr과 정수형 변수 max와 maxIndex를 선언해줬다.(여기서 max의 초기값은 101이다.) arr에 차레대로 정수를 입력받은후, 만약 arr[i] 값이 max보다 크다면 max를 arr[i]로 정해줬고, maxIndex는 i + 1로 지정해줬다. 이렇게 풀면 문제가 쉽게 풀린다.자세한건 아래 풀이 코드로 보자~!  풀이 코드#include#includeusing namespace std;int main(){ ios_base::sync_with..
백준 10818번 풀이문제 문제 이해N을 입력받으면 N횟수만큼 숫자를 입력받고,그 숫자중 최대값과 최소값을 출력하면 되는 문제이다. 바로 풀이로 넘어가보자~ 문제 풀이일단, 나는 이 문제를 총 2가지의 방식으로 풀었다. 두개의 방식의 차이점은 배열을 사용하냐 안하냐이다.아래 풀이를 보자. 1. #include의 sort함수 사용 sort(begin, end) 를 사용할 경우, 배열안에 있는 숫자들이 오름차순으로 정렬된다.그점을 이용해 0번째 index에 있는 값은 최대값이고, 마지막 index에 있는 값은 최소값이다. 이를 통해 문제를 풀수있다. 2. 배열 미사용 정렬을 사용하지 않고 최소값, 최대값을 구하려면 입력받을때마다 최대값, 최소값과 비교를 해서 최대값, 최소값을 뽑아주면 된다. 예를 들어, 정..
백준 10871번 풀이문제  문제 이해n과 x를 입력받은뒤에 수열 A에 n만큼 값을 입력받고, x보다 더 작은값을 출력해면 되는 문제이다. 조건문으로 x가 a[i] 보다 작다면 a[i]를 출력해주면 되는 문제이다.유의하며 문제를 풀어보자~ 문제 풀이먼저, n과 x를 입력받아야한다, 그리고 a라는 수열에 n만큼 값을 넣기 위해 반복문을 통해 a[i] 에 값을 입력해준다.a 수열안에 x보다 작은수들을 출력해줘야하기 때문에, 조건문을 사용해서 a[i]가 x보다 작으면 a[i]를 출력해보자 자세한건 아래 풀이 코드로 보자~! 풀이 코드#includeusing namespace std;int main(){ int a[10001]; int n, x; cin >> n >> x; f..
Lovingcats
'분류 전체보기' 카테고리의 글 목록 (2 Page)