Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 생성자오버로딩
- Java
- 이클립스로딩지연
- error페이지 설정
- 우아한테크
- ecleemma
- 이클립스형광줄
- java크롤링
- 메모리낭비적은string연산
- git
- 이클립스무한로딩
- 티스토리챌린지
- this()
- 이클립스느림
- 이클립스로딩
- 오블완
- select즐겨찾기
- Sequence
- sql error [936] [42000]: ora-00936
- 오버로딩
- sql error [1] [23000]: ora-00001
- sql error [947] [42000]: ora-00947
- 다형성
- 조건위치 효율성
- 프로그래머스
- oracle
- unresolved compilation problems
- 테크톡
- 테이블복사생성
- this
코딩항해기
[프로그래머스][JAVA] 수 조작하기 본문
문제 설명
정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.
"w" : n이 1 커집니다.
"s" : n이 1 작아집니다.
"d" : n이 10 커집니다.
"a" : n이 10 작아집니다.
위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요.
제한사항
-100,000 ≤ n ≤ 100,000
1 ≤ control의 길이 ≤ 100,000
control은 알파벳 소문자 "w", "a", "s", "d"로 이루어진 문자열입니다.
1차 풀이
class Solution {
public int solution(int n, String control) {
int answer = n;
for(int i = 0; i < control.length(); i++){
String a = ""+control.charAt(i);
if(a.equals("w")){
answer += 1;
}
else if(a.equals("s")){
answer -= 1;
}
else if(a.equals("d")){
answer += 10;
}
else if(a.equals("a")){
answer -= 10;
}
}
return answer;
}
}
2차풀이 (.toCharArray()이용하기)
class Solution {
public int solution(int n, String control) {
int answer = n;
for(char abc : control.toCharArray()){
if(abc == 'w'){
answer += 1;
}
else if(abc == 's'){
answer -= 1;
}
else if(abc == 'd'){
answer += 10;
}
else if(abc == 'a'){
answer -= 10;
}
}
return answer;
}
}
느낀 점
전의 문제를 풀 때 얻은 교훈을 잊지말자!
다른 사람 답안을 보면 람다식과 삼항연산자를 활용해서 한줄로 코딩한 분도 있었는데,
람다식을 활용하면 코드가 굉장히 간략해진다는 것을 알 수 있었다.
'problem solving > 코딩 테스트' 카테고리의 다른 글
[프로그래머스/JAVA] 나이 출력 (0) | 2024.07.01 |
---|---|
[프로그래머스/JAVA] 마지막 두 원소 (0) | 2024.06.30 |
[프로그래머스][JAVA] 카운트 업 (0) | 2024.06.23 |
[프로그래머스][JAVA] 글자 이어 붙여 문자 만들기 (0) | 2024.06.22 |
[프로그래머스][JAVA] 문자열 뒤의 n글자 (0) | 2024.06.21 |