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
- Data Structure
- Class
- implement
- string
- two pointers
- Stack
- java
- geometry
- Binary Search
- 자바
- Binary Tree
- Method
- Number Theory
- bit manipulation
- 코테
- Math
- greedy
- dynamic programming
- Tree
- array
- simulation
- Counting
- database
- sorting
- SQL
- hash table
- 구현
- 파이썬
- Matrix
- 코딩테스트
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 1974. Minimum Time to Type Word Using Special Typewriter 본문
코딩테스트 풀이/JAVA
[LeetCode/Easy] 1974. Minimum Time to Type Word Using Special Typewriter
무지맘 2023. 4. 24. 14:521. Input
1) String word
2. Output
1) word의 알파벳을 타이핑하는 데 필요한 최소 시간(초)을 반환
- 타자기는 원판으로 되어있다.
- 처음 포인터는 a를 가리키고 있다.
- 타자기는 시계방향 또는 반시계방향으로 돌릴 수 있다.
- 포인터가 가리키고 있는 곳에서부터 타이핑하려는 문자까지 떨어진 칸의 수만큼 이동 시간이 걸린다.
- 포인터가 가리키는 문자를 타이핑 하는데 1초가 걸린다.
3. Constraint
1) 1 <= word.length <= 100
2) word의 모든 문자열은 영어 소문자이다.
4. Example
Input: word = "bza" -> Output: 7
설명: 초기 포인터 = a
- a -> b: 시계 방향으로 1칸 -> 1초
- b 타이핑: 1초
- b -> z: 반시계 방향으로 2칸 -> 2초
- z 타이핑: 1초
- z -> a: 시계 방향으로 1칸 -> 1초
- a 타이핑: 1초
- 1 + 1 + 2 + 1 + 1 + 1 = 7초가 걸리므로 7을 반환한다.
5. Code
1) 첫 코드(2023/04/24)
int answer = 0, pointer = 0;
for(int i=0 ; i<word.length() ; i++){
int c = word.charAt(i)-'a';
int move = Math.abs(c-pointer);
answer += Math.min(move, 26-move)+1;
pointer = c;
}
return answer;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.0] 문자열 출력하기 (0) | 2023.04.24 |
---|---|
[LeetCode/Easy] 1984. Minimum Difference Between Highest and Lowest of K Scores (0) | 2023.04.24 |
[LeetCode/Easy] 1945. Sum of Digits of String After Convert (0) | 2023.04.24 |
[LeetCode/Easy] 1925. Count Square Sum Triples (0) | 2023.04.24 |
[프로그래머스/Lv.0] 문자 리스트를 문자열로 변환하기 (0) | 2023.04.22 |