Day78

강태훈·2026년 4월 22일

nbcamp TIL

목록 보기
78/97

알고리즘 코드카타

Percentage of Users Attended a Contest

-- SET @usercount = (SELECT COUNT(user_id) FROM Users);

SELECT contest_id, ROUND(COUNT(user_id) * 100 / (SELECT COUNT(user_id) FROM Users), 2) AS percentage
FROM Register
GROUP BY contest_id
ORDER BY percentage DESC, contest_id ASC;

set문 사용하려하였는데 leetcode에서는 지원하지않는듯함...

문자열 나누기

class Solution {
    public int solution(String s) {
        int answer = 0;
        char[] sen = s.toCharArray();

        char c = ' ';
        int same = 0;
        int nsame = 0;
        int index = -1;

        for (int i = 0; i < sen.length; i++){
            if(c == ' '){
                c = sen[i];
            }

            if (sen[i] == c){
                same++;
            } else {
                nsame++;
            }

            if(same == nsame){
                answer++;
                c = ' ';
                same = 0;
                nsame = 0;
                index = i;
            }
        }

        if (index != sen.length-1){
            answer++;
        }
        return answer;
    }
}

아래는 배열을 추가해서 계산!

import java.util.ArrayList;
import java.util.List;

class Solution {
    public int solution(String s) {
        char[] sen = s.toCharArray();
        List<String> strings = new ArrayList<>();

        char c = ' ';
        int same = 0;
        int nsame = 0;
        String string = "";
        
        for (int i = 0; i < sen.length; i++) {
            string += sen[i];

            if(c == ' '){
                c = sen[i];
            }

            if (sen[i] == c){
                same++;
            } else {
                nsame++;
            }

            if(same == nsame){
                c = ' ';
                same = 0;
                nsame = 0;
                strings.add(string);
                string = "";
            }

        }
        if (!string.equals("")){
            strings.add(string);
        }

        return strings.size();
    }
}

0개의 댓글