[Programmers]推奨新規ID(Java)
18877 ワード
1. Problem 📃
[ジルコニアルールジルコニア]
2. Constraint 🔗
3. Solution 🔑
私が問題を解く方法はアルゴリズムの概念をそのまま運ぶことです.
一つ一つゆっくりと解きほぐす.
Javaコードの実力を試験するためにはあまり向上していないので、今から見ればこの方法が一番いいと思いますが、先にメモしておきます.
3. Solution 🔑
私が問題を解く方法はアルゴリズムの概念をそのまま運ぶことです.
一つ一つゆっくりと解きほぐす.
Javaコードの実力を試験するためにはあまり向上していないので、今から見ればこの方法が一番いいと思いますが、先にメモしておきます.
4. Code 💻 import java.util.ArrayList;
import java.util.List;
class Solution {
public String solution(String new_id) {
String answer = "";
char word[] = new char[new_id.length()];
// 1단계 : 소문자로 변경
new_id = new_id.toLowerCase();
word = new_id.toCharArray();
ArrayList<String> list = new ArrayList<String>();
for (char i : word) {
list.add(i + "");
}
// 2단계 : 소문자, 숫자(0~9), '-', '_', '.' 이면
for (int i = 0; i < list.size(); i++) {
char temp = (char) (list.get(i).charAt(0));
if ((temp >= 'a' && temp <= 'z') || (temp >='0' && temp <='9') || (temp == '-' || temp == '_' || temp == '.')) {
continue;
}
else {
list.remove(i);
i--;
}
}
// 3단계 : 마침표(.)가 두개 이상이면 .하나로 변경.
for (int i=0; i<list.size()-1; i++) {
char temp = (char) (list.get(i).charAt(0));
if (temp == '.' && list.get(i + 1).charAt(0) == '.') {
list.remove(i);
i--;
}
}
// 4단계 : 마침표(.)가 맨 앞이나 뒤에 있을 때 삭제.
if (list.get(0).charAt(0) == '.') {
list.remove(0);
}
else if (list.get(list.size() - 1).charAt(0) == '.') {
list.remove(list.size() - 1);
}
// 5단계 : 삭제하고 글자가 빈문자열이면 a 추가
if (list.size()== 0) {
list.add("a");
}
// 6단계 : 글자 길이가 15글자를 초과하면
if (list.size() > 15) {
for (int i = 15; i < list.size(); i++) {
list.remove(i);
i--;
}
}
//제거 후 마지막 글자가 '.' 이라면 삭제.
if (list.get(list.size() - 1).charAt(0) == '.') { //
list.remove(list.size()-1);
}
// 7단계 : 글자수가 2자 이하면 마지막 문자를 붙여서 3자를 만들어줌
if (list.size() < 3) {
char temp = list.get(list.size() - 1).charAt(0);
while(list.size()<3) {
list.add(temp + "");
}
}
for(String str:list){
answer += str;
}
return answer;
}
}
5. Growth 🍄
JavaではArrayListの概念が非常に不足している.
今回はKakaoの新しいIDの推薦を学ぶ過程でJENNERICもArrayListの方法を学びました.
Reference
この問題について([Programmers]推奨新規ID(Java)), 我々は、より多くの情報をここで見つけました
https://velog.io/@tpdlqj0514/Programmers-신규-아이디-추천-Java
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.util.ArrayList;
import java.util.List;
class Solution {
public String solution(String new_id) {
String answer = "";
char word[] = new char[new_id.length()];
// 1단계 : 소문자로 변경
new_id = new_id.toLowerCase();
word = new_id.toCharArray();
ArrayList<String> list = new ArrayList<String>();
for (char i : word) {
list.add(i + "");
}
// 2단계 : 소문자, 숫자(0~9), '-', '_', '.' 이면
for (int i = 0; i < list.size(); i++) {
char temp = (char) (list.get(i).charAt(0));
if ((temp >= 'a' && temp <= 'z') || (temp >='0' && temp <='9') || (temp == '-' || temp == '_' || temp == '.')) {
continue;
}
else {
list.remove(i);
i--;
}
}
// 3단계 : 마침표(.)가 두개 이상이면 .하나로 변경.
for (int i=0; i<list.size()-1; i++) {
char temp = (char) (list.get(i).charAt(0));
if (temp == '.' && list.get(i + 1).charAt(0) == '.') {
list.remove(i);
i--;
}
}
// 4단계 : 마침표(.)가 맨 앞이나 뒤에 있을 때 삭제.
if (list.get(0).charAt(0) == '.') {
list.remove(0);
}
else if (list.get(list.size() - 1).charAt(0) == '.') {
list.remove(list.size() - 1);
}
// 5단계 : 삭제하고 글자가 빈문자열이면 a 추가
if (list.size()== 0) {
list.add("a");
}
// 6단계 : 글자 길이가 15글자를 초과하면
if (list.size() > 15) {
for (int i = 15; i < list.size(); i++) {
list.remove(i);
i--;
}
}
//제거 후 마지막 글자가 '.' 이라면 삭제.
if (list.get(list.size() - 1).charAt(0) == '.') { //
list.remove(list.size()-1);
}
// 7단계 : 글자수가 2자 이하면 마지막 문자를 붙여서 3자를 만들어줌
if (list.size() < 3) {
char temp = list.get(list.size() - 1).charAt(0);
while(list.size()<3) {
list.add(temp + "");
}
}
for(String str:list){
answer += str;
}
return answer;
}
}
JavaではArrayListの概念が非常に不足している.
今回はKakaoの新しいIDの推薦を学ぶ過程でJENNERICもArrayListの方法を学びました.
Reference
この問題について([Programmers]推奨新規ID(Java)), 我々は、より多くの情報をここで見つけました https://velog.io/@tpdlqj0514/Programmers-신규-아이디-추천-Javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol