마름모모양의 별찍기 풀이
문제풀이 순서: 1. 과목 개수 입력받기 2. 각 과목별 데이터 입력받기 for문에 사용되는 int i를 arr[i]로 집어넣어 순서대로 데이터를 입력했다. 3. 가장 높은 점수 구하기 변수 M을 지정해 초기값을 배열의 첫번째값(arr[0])을 집어넣었고,
서로 다른 나머지값의 개수 구하기. 중복된 값 제거하기
C++의 포인터, 배열, 문자열을 활용한 문제풀이
while문을 활용해 포인터가 문자열의 0(null)에 도달할 때까지 한칸씩 밀어준다.
cin.getline() 함수를 통해 공백까지 입력하기
문자열의 마지막이 '0'인 점을 이용해 포인터를 문자열의 끝까지 이동시킬 수 있다.
char타입과 int타입의 변수를 이용하면 ascii 코드를 출력할 수 있다.
숫자를 문자열로 받아 ascii코드 값을 빼준다.
문자열로 숫자열을 입력받고 ascii코드를 빼주어 정수로 변환한다.<C++ code>
바구니 하나는 배열의 요소 하나를 의미한다. 주어진 조건에 맞춰 배열의 값을 변경해준다.
팰린드롬에서 대칭되는 숫자의 쌍의 개수는 글자 전체 개수/2의 몫과 같음을 이용한다.
서로 바꾸고자 하는 배열의 값을 제3의 변수에 담아 전달한다.
M번 뒤집기를 반복하는 for문에서 'i++ & j--'를 증감식으로 사용한다.
알파벳 소문자의 ascii 코드값을 이용해 문자를 하나씩 비교한다.
문자열의 순서를 뒤집어 ascii 코드를 이용해 정수로 변환한 뒤 서로 비교한다.
알파벳이 들어있는 문자열의 범위를 나누어 범위 안에 해당하는 시간을 더해준다.
getline(cin,string) 함수를 이용해 공백이 포함된 문자열을 받고, .length() 함수를 이용해 문자열의 길이 안에서 단어의 개수를 센다.
느낀점 처음 제출했을땐 를 로 썼었다. 그런데 이 방식은 'dz='와 'z='가 동시에 나왔을 때 중복된 값을 빼주지 않으면 틀릴 위험이 있었다. 또한 최대한 짧은 코드를 고려하다보니 최종적으로 를 쓰게 되었다.
문제 원문 최종 작성한 코드 (정답) 코드 풀이 >1. 학점을 으로 받아온다. >2. 계산된 학점을 출력할 변수 을 만든다. >3. switch-case-break 문을 통해 학점의 알파벳에 따라 평점을 나눈다. 이 때 case 뒤에 쓰인 숫자는 알파벳의 as
결과값의 초기값을 1로 설정하고 for문을 통해 곱셈을 덧입힌다고 생각하자.위의 코드의 if문이 없었다면, 10^10을 넣었을 때 0이 출력될 수도 있다.그러나 문제에 0번째 컴퓨터는 없으며 사실상 10번째 컴퓨터와 같으므로 값을 변경해주자.
1. n의 뒤의 두자리를 나머지연산을 통해 00으로 만든다. 2. while문을 통해 n/f의 값이 0이 될 때 까지 n에 1을 더한다. 3. 구한 두자리만을 나머지연산을 이용해 출력한다.