728x90
문제 예시로만 풀다가 계속 틀려서 수정보완.
import java.util.*;
class Solution {
public String solution(String new_id) {
String answer = "";
char[] char_array = new_id.toCharArray();
Queue<Character> que = new LinkedList<>();
Queue<Character> que2 = new LinkedList<>();
int continue_check = 0;
int size = 0;
StringBuilder sb = new StringBuilder();
for(int ii = 0 ; ii < char_array.length ; ii++)
{
/* case1 */
if(char_array[ii] >= 'A' && char_array[ii] <= 'Z')
{
char_array[ii] =(char) (char_array[ii] + 32);
}
/* case2 */
if((char_array[ii] >= 'a' && char_array[ii] <= 'z')
|| (char_array[ii] >= '0' && char_array[ii] <= '9')
|| char_array[ii] == '-'
|| char_array[ii] == '_'
|| char_array[ii] == '.')
{
que.add(char_array[ii]);
}
}
/* case3 */
size = que.size();
for(int ii = 0 ; ii < size ; ii++)
{
char temp = que.poll();
if(continue_check == 0 && temp == '.')
{
continue_check++;
que2.add(temp);
}
else if(continue_check == 0 && temp != '.')
{
que2.add(temp);
}
else if(continue_check == 1 && temp != '.')
{
continue_check = 0;
que2.add(temp);
}
else if(continue_check > 1 && temp != '.')
{
continue_check = 0;
}
}
que.clear();
/* case4 */
size = que2.size();
for(int ii = 0 ; ii < size ; ii++)
{
char temp = que2.poll();
if(ii == 0 && temp == '.')
{}
else if(ii == size -1 && temp == '.')
{}
else
que.add(temp);
}
/* case5 */
size = que.size();
if(que.size() == 0)
que.add('a');
/* case6 && case7 */
size = que.size();
if(size >= 16)
{
for(int ii = 0 ; ii < 15 ; ii++)
{
char temp = que.poll();
if(ii == 14 && temp == '.')
{}
else
sb.append(temp);
}
}
else if(size <= 2)
{
if(size == 1)
{
char temp = que.poll();
sb.append(temp);
sb.append(temp);
sb.append(temp);
}
if(size == 2)
{
sb.append(que.poll());
char temp = que.poll();
sb.append(temp);
sb.append(temp);
}
}
else
{
for(int ii = 0 ; ii < size ; ii++)
sb.append(que.poll());
}
answer = sb.toString();
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/72410?language=java
728x90
'코딩 테스트' 카테고리의 다른 글
이진탐색 샘플 (0) | 2023.01.09 |
---|---|
프로그래머스 - 로또의 최고 순위와 최저 순위 자바 (0) | 2023.01.09 |
프로그래머스 - 다단계 칫솔 판매 자바 java (0) | 2023.01.09 |
프로그래머스 - 헤비 유저가 소유한 장소 (0) | 2023.01.09 |
프로그래머스 - 행렬 테두리 회전하기 자바 java (0) | 2023.01.09 |