개발자 바다의 파도

개발의 무인도에 갇혔다

전체 글 210

2480 - 주사위 세개 (C++)

문제 - 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다 1. 같은 눈이 3개가 나오면 10,000원 + (같은 눈) x 1,000원의 상금을 받게 된다. 2. 같은 눈이 2개만 나오는 경우에는 1,000원 + (같은 눈) x 100원의 상금을 받게 된다. 3. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈) x 100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000 + 3 x 100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000 + 2 x 1,000으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로..

코딩 기초 트레이닝 - 19일차 (C++)

19일차 - 문자열, 리스트 (배열) 1번) 세 개의 구분자 for문에 11번째에는 string myStr[i] 값에서 'a', 'b', 'c' 중 하나 찾으면 temp 값을 백터 answer에 삽입을 합니다. 만일 temp 값이 비어있으면 answer에 삽입을 안 하도록 해줘야 합니다. 31번 줄은 마지막 문장이 안 비어 있는 경우 백터 answer에 삽입하는 것입니다. 34번줄은 만일 answer이 비어 있는 경우 "EMPTY" 값을 삽입해줘서 완성시킵니다. 2번) 배열의 원소만큼 추가하기 이번 문제는 간단하게 이중 for문을 이해하면 쉽게 풀 수 있는 문제입니다. arr[i]에서 조건값을 받아서 그만큼 for문에서 백터 answer에 arr[i] 값을 삽입해주면 됩니다. 3번) 빈 배열에 추가, 삭..

2525 - 오븐 시계 (C++)

문제 - KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지는 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 - 첫째 줄에는 현재 시각이 나온다. 현재 시각은 A (0

코딩 기초 트레이닝 - 18일차 (C++)

18일차 - 문자열 1번) x 사이의 개수 이번 문제 핵심은 string myString에 문자열 사이에서 'x'값을 찾는 것입니다. 13번줄처럼 if (myString[i] == 'x')로 해주시면 'x' 값인지 확인을 할 수 있습니다. 2번) 문자열 잘라서 정렬하기 이번 문제는 'x'값 기준으로 문자열을 잘라내서 배열을 입력 한 다음 오름차순으로 정렬을 해줘야 합니다. 전에 풀었던 문제 'x 사이의 개수'처럼 15번줄에 있는 if (myString[i] = 'x')로 'x' 값인지 확인을 해준 다음 배열을 나눠줍니다. 마지막 문자열은 삽입을 안하니 28번줄처럼 temp가 안 비어 있으면 vector answer에 마지막 문자열을 삽입해줍니다. 이후 31번줄에서 백터 answer을 정렬을 해줍니다. 물..

2884 - 알람 시계 (C++)

문제 - 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다. 현재 상근이가 설정한 알람 시각이 주어졌을 떄, 창영이의 방법을 사용한다면, 이를 언제로..

코딩 기초 트레이닝 - 17일차 (C++)

17일차 - 문자열 1번) 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 for문 12번줄에서 string myString의 인덱스 값을 보면서 만일 string pat[0]인 첫 pat 글자가 같으면 그 위치부터 myString 값과 pat 값이 같은지 확인을 한다. 이는 for문 16번줄에서 실행이 된다. 이후 만일 같으면 27번줄 if문을 수행을 하면서 answer에 값을 삽입한다. 2번) 문자열이 몇 번 등장하는지 세기 string myString에 string pat이 몇 번이나 등장하는지 세는 문제입니다. 이번 문제는 저번 문제처럼 for문 대신 find() 함수를 이용해서 찾아봤습니다. for문 10번줄에 시작해서 12번 for문 줄에서 temp에 myString의 pat 길이만큼 넣습니다..

14681 - 사분면 고르기 (C++)

문제 - 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제 n사분면"이라는 뜻이다. 예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제 1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다. 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다. 입력 - 첫 줄에는 정수 x가 주어진다. (-1000

코딩 기초 트레이닝 - 16일차 (C++)

16일차 - 문자열 1번) 대문자로 바꾸기 매우 간단하게 #include 을 추가해서 toupper() 함수를 쓰면 쉽게 풀 수 있습니다. 2번) 소문자로 바꾸기 이 또한 간단하게 #include 을 추가해서 tolower() 함수를 쓰면 쉽게 풀 수 있습니다. 3번) 배열에서 문자열 대소문자 변환하기 이번 문제에서 홀수번쨰 인덱스의 문자열을 대문자로, 짝수번때는 소문자로 만드는 문제입니다. % 연산으로 홀수인지 짝수인지 구분하고 전에 푼 문제 '대문자로 바꾸기'와 '소문자로 바꾸기'처럼 toupper()와 tolower() 함수를 써서 풀면 됩니다. 4번) A 강조하기 문자열 myString에서 a 문자를 A로 바꾸고 나머지 알파벳은 소문자로 출력하는 문제입니다. 이 또한 tolower() 함수를 쓰면..

2753 - 윤년 (C++)

문제 - 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도의 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수가 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. 입력 - 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다. 출력 - 첫째 줄에 윤년이면 1, 아니면 0을 출력한다 풀이 - 맨 처음으로 if문 안에 if, else-if문을 넣으면 햇갈릴 수 있는 문제이다. 차근하게 생각해서 if문에 어느 조건문이 먼저 들어가야 하는지 생각해서 ..

코딩 기초 트레이닝 - 15일차 (C++)

15일차 - 리스트 (배열), 문자열 1번) 조건에 맞게 수열 변환하기 1 백터 arr 원소 값이 50보다 크거나 같으면서 짝수이면 2로 나누고, 50보다 작고 홀수이면 2를 곱하는 문제입니다. for문에서 백터 arr 각 원소 값들을 살피면서 조건에 따라 원소 값을 조정하면 되는 문제입니다. 2번) 조건에 맞게 수열 변환하기 2 전에 푼 '조건에 맞게 수열 변환하기 1'에 백터 arr 모든 원소 값이 변하지 않는 떄를 찾는 문제입니다. while문을 넣어서 각 for문에서 원소 값 변환이 생기면 tempCnt에 값을 추가하고 이것이 0일 때까지 돌리는 while문을 생성하면 되는 문제입니다. 지금 보니깐 좀 더 간단하게 만드는 방법은 백터 prevArr을 만들어서 백터 arr와 비교해서 값이 같은지 확..