본문 바로가기
코딩테스트/프로그래머스 기초

[코딩테스트 Lv.0] 배열에서 문자열 대소문자 변환하기

by 블루데이제이 2025. 2. 20.
728x90
반응형
문제 설명

문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.

제한사항
● 1 ≤ strArr ≤ 20
   ○ 1 ≤ strArr의 원소의 길이 ≤ 20
   ○ strArr의 원소는 알파벳으로 이루어진 문자열 입니다.
입출력 예
strArr				result
["AAA","BBB","CCC","DDD"]	["aaa","BBB","ccc","DDD"]
["aBc","AbC"]			["abc","ABC"]
입출력 설명
입출력 예 #1
strArr[0]과 strArr[2]는 짝수번째 인덱스의 문자열이므로 모두 소문자로 바꿔서 "aaa"와 "ccc"가 됩니다.
strArr[1]과 strArr[3]는 홀수번째 인덱스의 문자열인데 원래 대문자이므로 그대로 둡니다.
따라서 ["aaa","BBB","ccc","DDD"]를 return 합니다.

입출력 예 #2
strArr[0]은 짝수번째 인덱스의 문자열이므로 소문자로 바꿔서 "abc"가 됩니다.
strArr[1]은 홀수번째 인덱스의 문자열이므로 대문자로 바꿔서 "ABC"가 됩니다.
따라서 ["abc","ABC"]를 return 합니다.

내 풀이
Java
class Solution {
    public String[] solution(String[] strArr) {
        String[] answer = new String[strArr.length];
        
        for(int i = 0; i < strArr.length; i++){
            if(i % 2 == 0){
                answer[i] = strArr[i].toLowerCase();
            }else{
                answer[i] = strArr[i].toUpperCase();
            }
        }
        
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// strArr_len은 배열 strArr의 길이입니다.
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char** solution(const char* strArr[], size_t strArr_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char** answer = (char**)malloc(sizeof(char*) * strArr_len);
    
    int i;
    for(i = 0; i < strArr_len; i++){
        answer[i] = (char*)malloc(sizeof(char*) * strlen(strArr[i]));
        strcpy(answer[i], strArr[i]);
        int j;
        if(i % 2 == 0){            
            for(j = 0; j < strlen(answer[i]); j++){
                if(answer[i][j] >= 'A' && answer[i][j] <= 'Z'){
                    answer[i][j] = answer[i][j] + 32;
                }else{
                    answer[i][j] = answer[i][j];
                }
            }
        }else{
            for(j = 0; j < strlen(answer[i]); j++){
                if(answer[i][j] >= 'a' && answer[i][j] <= 'z'){
                    answer[i][j] = answer[i][j] - 32;
                }else{
                    answer[i][j] = answer[i][j];
                }
            }
        }
    }
    answer[i] = '\0';
    
    return answer;
}
Python
def solution(strArr):
    answer = []
    
    for i in range(len(strArr)):
        if i % 2 == 0:
            answer.append(strArr[i].lower())
        else:
            answer.append(strArr[i].upper())
    
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/181875

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


 

자바 문자열 다루기 #1

String 클래스 String 클래스는 API문서의 java.lang 패키지에서 찾아볼 수 있습니다. 자바 API문서는 아래 링크를 참조하시면 됩니다. https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com 그렇다

bluedayj.tistory.com


 

 

[코딩테스트 Lv.0] A 강조하기

문제 설명문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함

bluedayj.tistory.com

 

 

[코딩테스트 Lv.0] 특정한 문자를 대문자로 바꾸기

문제 설명영소문자로 이루어진 문자열 my_string과 영소문자 1글자로 이루어진 문자열 alp가 매개변수로 주어질 때, my_string에서 alp에 해당하는 모든 글자를 대문자로 바꾼 문자열을 

bluedayj.tistory.com

 

 

[코딩테스트 Lv.0] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

문제 설명문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.제한사항● 5 ≤ myString ≤

bluedayj.tistory.com

 

728x90
반응형