Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Math
- Counting
- two pointers
- implement
- 자바
- string
- java
- 코딩테스트
- Matrix
- 코테
- simulation
- geometry
- sorting
- hash table
- Binary Tree
- Method
- Tree
- 파이썬
- database
- Class
- bit manipulation
- array
- Data Structure
- greedy
- SQL
- Number Theory
- dynamic programming
- 구현
- Stack
- Binary Search
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.0] 수 조작하기 2 본문
1. Input, Output, Example
numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 해보자.
// "w" : 수에 1을 더한다.
// "s" : 수에 1을 뺀다.
// "d" : 수에 10을 더한다.
// "a" : 수에 10을 뺀다.
그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog이다.
- 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 반환
2. Constraint
1) 2 ≤ log의 길이 ≤ 100,000
2) -100,000 ≤ log[0] ≤ 100,000
3) 1 ≤ i ≤ log의 길이인 모든 i에 대해 |log[i] - log[i - 1]|의 값은 1 또는 10이다.
4) numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있다.
3. Code
1) 첫 코드(2023/05/01)
class Solution {
public String solution(int[] numLog) {
String answer = "";
for(int i=1 ; i<numLog.length ; i++){
switch(numLog[i]-numLog[i-1]){
case 1: answer += "w"; break;
case -1: answer += "s"; break;
case 10: answer += "d"; break;
default: answer += "a";
}
}
return answer;
}
}
2) 너무 느려서 다시 짜본 코드(2023/05/01)
class Solution {
public String solution(int[] numLog) {
StringBuffer sb = new StringBuffer(numLog.length-1);
for(int i=1 ; i<numLog.length ; i++){
switch(numLog[i]-numLog[i-1]){
case 1: sb.append("w"); break;
case -1: sb.append("s"); break;
case 10: sb.append("d"); break;
default: sb.append("a");
}
}
return sb.toString();
}
}
- 엄청난 차이를 보인다... 점수 변화는 없다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.0] 순서 바꾸기 (0) | 2023.05.01 |
---|---|
[프로그래머스/Lv.0] 주사위 게임 2 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 배열 만들기 3 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 특별한 이차원 배열 1 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 특별한 이차원 배열 2 (0) | 2023.05.01 |