개발자 바다의 파도

개발의 무인도에 갇혔다

알고리즘 공부/프로그래머스 알고리즘

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

개바파 2023. 12. 27. 11:30

11일차 - 배열 (리스트)

 

1번) 문자 개수 세기

 

     문제에서는 소문자 알파벳이랑 대문자 알파벳을 구분한다는 것을 알아야 합니다. 그러므로 총 알파벳 수인 26을 두 번 곱해서 백터 answer에는 총 52 element가 있습니다. 또 중요한 것은 아스키 코드이며 대문자 A부터 Z까지는 65에서 90까지이며 소문자 a부터 z까지는 97에서 122까지입니다. 그러므로 14번 줄인 for문에서 18번 줄에서 대문자인지 확인하고 대문자이면 65만큼 빼서 배열 값을 맞춰줍니다. 반대로 소문자이면 71만큼 빼서 배열 값을 맞춰주면 됩니다.

 

2번) 배열 만들기 1

 

 

     숫자 1에서 정수 n값까지 정수 k의 배수를 찾는 문제입니다. 이는 간단하게 나머지 값을 써도 되지만 좀 더 특이하게 n/k만큼 나누기로 해서 반복문을 좀 더 짧게 하게 했습니다.

 

3번) 글자 지우기

 

 

     일단 문제를 쉽게 풀기 위해서 백터 indices을 sort 함수를 써서 정렬를 합니다. 이는 #include <algorithm>을 써서 sort 함수를 호출했습니다. 이후 14번줄에 있는 for문으로부터 indices의 배열 값이 정수 i와 같으면 다음 indices 배열 값으로 넘어가고, 만일 i값이 indices 배열 값이 안 맞으면 string answer에 string my_string의 배열 i 값을 삽입합니다.     

 

4번) 카운트 다운

 

 

     문제에 for문 초기값을 정수 start로도 쉽게 풀 수 있지만 이번에는 초기값 i을 0으로 하고 start와 정수 i값을 빼면서 answer 값에 삽입을 했습니다.

 

5번) 가까운 1 찾기

 

 

     백터 arr에 for문 초기값을 정수 idx로 받으면서 먼저 인덱스의 값이 1인 인덱스 번호를 찾으면 되는 문제입니다.

 

코드 복붙 주소 - https://github.com/ResToEons/ProgrammersAlgorithm/tree/main/%EC%BD%94%EB%94%A9%20%EA%B8%B0%EC%B4%88%20%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D/11%EC%9D%BC%EC%B0%A8