반응형
네 .. 저는 하드코딩 하는 사람입니다.
진짜.. 클린코드 하고싶은데.
맘처럼 안되네요.
그래도 아직 저는 초보이니까!
문제를 해결했다는거에 만족을 해보렵니다!
정말 긴... 나의 하드코드..
class Solution {
public int romanToInt(String s) {
String symbols = "IVXLCDM";
int answer = 0;
int length = s.length();
int symLength = symbols.length();
for(int i=0; i<length; i++){
for(int j=0; j<symLength; j++){
if(symbols.charAt(j) == s.charAt(i)){
if(j == 0){
if(i <length-1 && s.charAt(i+1) == 'V'){
answer += 4;
}else if(i <length-1 && s.charAt(i+1) == 'X'){
answer += 9;
}else{
answer += 1;
}
}else if(j == 1){
if(i > 0 && s.charAt(i-1) == 'I'){
answer += 0;
}else{
answer += 5;
}
}else if(j == 2){
if(i > 0 && s.charAt(i-1) == 'I'){
answer += 0;
}else{
answer += 10;
}
if(i <length-1 && s.charAt(i+1) == 'L'){
answer += 30;
}else if(s.charAt(i+1) == 'C'){
answer += 80;
}
}else if(j == 3){
if(i > 0 && s.charAt(i-1) == 'X'){
answer += 0;
}else{
answer += 50;
}
}else if(j == 4){
if(i > 0 && s.charAt(i-1) == 'X'){
answer += 0;
}else{
answer += 100;
}
if(i <length-1 && s.charAt(i+1) == 'D'){
answer += 300;
}else if(i <length && s.charAt(i+1) == 'M'){
answer += 800;
}
}else if(j == 5){
if( i > 0 && s.charAt(i-1) == 'C'){
answer+= 0;
}else{
answer += 500;
}
}else{
if( i > 0 && s.charAt(i-1) == 'C' ){
answer+= 0;
}else{
answer += 1000;
}
}
}
}
}
return answer;
}
}
반응형
'SOFTWARE > ALGORITHM' 카테고리의 다른 글
[leetcode] Roman To Integer (0) | 2022.01.21 |
---|---|
[leetcode] Palindrome Number (0) | 2022.01.09 |
[leetcode] two sum (0) | 2021.10.08 |
[codewars] Is a number prime? - 소수인 숫자 찾기 (0) | 2020.02.17 |
[codewars] Sum of odd numbers (0) | 2020.02.16 |
댓글