반응형
요즘 https://leetcode.com 에서 알고리즘 문제를 풀고 있다. 수행속도 및 메모리 사용량까지 모두 측정해줘서 좋았고, 문제를 푼 사람들 중에 내가 푼 방법의 효율성을 알려주는 부분도 좋았다. 앞으로는 계속 leet code 문제를 올릴 것 같다.
[Problem]
Given a valid (IPv4) IP address, return a defanged version of that IP address.
A defanged IP address replaces every period "." with "[.]".
[Example1]
Input: address = "1.1.1.1"
Output: "1[.]1[.]1[.]1"
[Example2]
Input: address = "255.100.50.0"
Output: "255[.]100[.]50[.]0"
[Constarint]
The given address is a valid IPv4 address.
[Solution1]
class Solution {
public String defangIPaddr(String address) {
StringBuffer sb = new StringBuffer();
int strLenth = address.length();
for(int i = 0; i < strLenth; i++ ){
if(address.charAt(i) == '.'){
sb.append("[.]");
}else{
sb.append(address.charAt(i));
}
}
return sb.toString();
}
}
[Solution2]
class Solution {
public String defangIPaddr(String address) {
return address.replace(".","[.]");
}
}
알고리즘 문제를 풀떄는 최대한 네이티브하게 작성해야 메모리나 런타임 시간이 적게 나온다. 이런점이 내가 알고리즘을 별로 안좋아하는 부분이긴 하다. 실무를 하면 최적한 코드도 중요하지만 유지보수와 관리가 용이해야한 코드 가독성이 좋은 코드 또한 매우 중요하다고 생각하기 때문이다. 여튼 그렇다...
반응형
'Programming > Algorithm' 카테고리의 다른 글
[Java-알고리즘] toLowerCase Implemet (0) | 2019.10.26 |
---|---|
[Java-알고리즘] Split a String in Balanced Strings (0) | 2019.10.26 |
[Java-알고리즘] Jewels and Stones (0) | 2019.10.26 |
[Java - 알고리즘] 직사각형의 좌표 구하기 (0) | 2019.09.22 |
[Java - 알고리즘] 입력된 정수의 합 구하기 (0) | 2019.09.22 |