개발자 바다의 파도

개발의 무인도에 갇혔다

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

코딩테스트 입문 - 12일차 (C++)

개바파 2024. 2. 1. 12:04

12일차 - 문자열, 정렬, 사칙연산, 수학

 

1번) 모음 제거

 

 

     이번 문제는 간단하게 my_string[i]에 모음 (a, e, i, o, u)가 있으면 answer에 값을 추가 안하고, 반대로 모음이 아니면 answer에 string[i]을 삽입하면 되는 간단한 문제입니다.

 

2번) 문자열 정렬하기 (1)

 

 

     이번 문제는 my_string 내에 숫자를 찾고 그 숫자들을 오름차순으로 정렬해야 합니다. 일단 12번 for문에서 my_string[i]이 숫자인 경우를 isdigit() 함수로 찾습니다. 만일 맞으면 answer에 값을 삽입하는데 주의해야 할 것은 char을 int로 변환해서 주는 것처럼 하기 위해 아스키 코드에 따라 48만큼 빼줘야 합니다. 이후 20번줄 for문에서 숫자를 정렬을 합니다. 여기서 sort() 함수를 쓰면 더 깔끔하게 풀 수 있습니다.

 

3번) 숨어있는 숫자의 덧셈 (1)

 

 

     이번 문제는 my_string에 isdigit으로 숫자를 찾아 그 숫자를 answer에 더하면 됩니다. 주의해야 할 것은 char을 int로 변환한다고 생각해서 아스키 코드에 따라 48만큼 빼줘야 합니다.

 

4번) 소인수분해

 

 

     이번 문제는 주어진 n을 소인수분해 값을 찾는 것입니다. 이는 12번줄 while에서 주어진 숫자가 1이 될 때까지 실행시키면 됩니다. 실행 시키는 동안 num 만큼 나누어서 떨어지면 주어진 숫자를 num 만큼 나눕니다. 만약에 나눈 숫자가 중복인 경우, answer에 삽입을 하면 안되니 18번 for문에서 중복을 확인 해줍니다. 만일 num으로 안 나눠 떨어지면 num을 1씩 증가시킵니다.

 

코드 복붙 주소 - https://github.com/ResToEons/ProgrammersAlgorithm/tree/main/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EC%9E%85%EB%AC%B8/12%EC%9D%BC%EC%B0%A8