전체 글 27

1431

문제를 풀면서 c++에 대해 여러가지를 배웠다일단 sort 함수에 조건식을 사용자가 정의할수 있는데 sort(a,b,조건 함수) 이런 식으로 작성하면 사용자가 정의한 기준으로 배열이 된다. 이 점을 이용해 길이,합,사전순으로 값을 정렬하는 함수를 만들어 문제를 풀 수 있다. 두번째로는 c++도 c언어처럼 문자열을 입력받으면 배열에 저장된 값으로만 쓸수 있는줄 알았는데 string형으로 받은 문자열은 그 자체가 하나의 변수로 저장된다. 그렇기에 배열로 문자열을 받거나 string형으로 문자열을 받거나 혹은 벡터에도 문자열을 입력받아 배열로 받았을때 불가능한 코드를 짜는것도 가능해보인다. 코드를 해설하자면 입력값을 입력받고 첫번째로 두 문자열의 크기를 비교하고 크기가 같다면 합을 이용해 작은 순서대로 배열 ..

카테고리 없음 2024.06.18

2891

문제를 풀다 모르겠는 부분을 참고하여 문제를 풀었다.코드는 간단하게 1로 초기화된 벡터를 선언하고 부서진 부분의 해당하는 벡터를 0으로 만들고 여유분의 카약가 있는 벡터를 ++하여 파손된 부분의 벡터의 앞,뒤중 2개 이상의 카누를 가진 벡터에서 한개를 빼오면 된다.    for(int i=0; i      cin >> num;       if(v[num]==0)       v[num]=1;       else if(v[num-1]==0 && num>=1)       v[num-1]=1;       else if(v[num+1]==0 && num      v[num+1]=1;          } 처음 코드를 작성할때는 값을 입력 받자마자 벡터를 계산하도록 코드를 작성하였지만 위 코드는 카약의 여유분의 앞,..

카테고리 없음 2024.06.17

2885

문제를 풀기 어려워 검색을 통해 코드를 찾고 코드를 이해하려했다.우선 첫번째 반복문은 초콜릿의 최소 크기를 구하기 위해 i값을 설정하는 코드로 입력 값의 최소는 1000000이기에2의 20승인 1048576가 나올수 있는 최대 범위이다.그 후 i를 2씩 나눠가며 반복문을 돌려 값을 계산한다.  첫번째로 입력값이 초콜렛의 크기보다 클 경우 초콜렛의 2를 곱해 크기를 입력값 이상으로 만든다 이때 쪼갠 개수는 i+1이다. 입력값과 크기가 같은 경우 최소 크기는 num값 그대로이고 쪼갠 개수도 i의 값 그대로이다. k가 num과 같은 경우 그때의 i값을 변수에 저장하고 반복문을 빠져나온다.이후 저장된 최소 초콜릿의 크기와 총 쪼깬 값-지금 크기의 값(how1-how2)을 출력한다.

카테고리 없음 2024.06.17

1543

문자열의 일부분을 복사하는 substr 함수를 사용하여 문제를 풀었다.일단 문자열 a와 비교할 문자열 b를 입력받는다. 이후 문자열 a의 길이만큼 반복을 실행한다이때 만약 문자열과 비교문자열이 같다면 그 길이만큼 i를 더해주어야 한다.예를 들어 ababababa 문자열과 aba문자열을 비교한다 가정했을때[aba] bababa의 처음과 aba를 비교해 count를 올린 후에는 aba [bab] aba 를 비교해야 한다.따라서 i에 b의 길이만큼 더하고 반복문이 돌때 +1이 되므로 다시 -1을 해주면 비교 코드가 완성된다.이후 같은 개수를 저장한 count를 출력해주면 된다.

카테고리 없음 2024.06.16

1459

문제를 풀기 어려워 검색을 해 코드를 이해하고 문제를 풀었다.c++의 함수중 두 값을 비교하고 작은 값을 반환하는 min 함수가 있어 이를 사용해 문제를 풀었다. 우선 입력값 x,y,w,s를 입력받는다그 후 거리(절댓값)을 저장할 num 변수를 선언한다. 첫번째 경우로 a1은 가로,세로로 직진할때가 가장 짧을때로 간단하게 (x+y)*w를 계산하면 된다.두번째 경우는 대각선이 더 짧을때로 가능한 한 갈 수 있는 대각선의 길이만큼 이동하고 다음 경우를 생각하면 된다.   X-Y는 현제 위치(0,0)에서 갈수 있는 대각선의 길이이다.아래 그림과 같이 x-y만큼 이동할수 있다.계산 후 대각선으로 이동할수 있는 조건 x-y에 따라 a2의 값을 더해 최종 거리를 계산한다.x-y의 값이 짝수인 경우 대각선으로 이동할..

카테고리 없음 2024.06.16