티스토리 뷰
기술(Tech, IT)/리트코드(LeetCode)
[LeetCode] 158. Read N Characters Given read4 II - Call Multiple Times
Daniel803 2023. 2. 12. 12:34157. Read N Characters Given read4의 연장선에 있는 문제로 이 문제 역시 비추천이(1.7K)로 추천(840)을 압도한다. 157번 문제와 다른 점은 완성해야되는 read() 함수가 여러번 불리는 것이다. 그렇기에 이전에 파일의 어디까지 읽었는지를 따로 저장하는 prevI라는 변수와 이전에 파일에서 읽어왔지만 4개까지만 반환이 가능해 아직 반환하지 못했던 내용을 저장해두고 다음에 read() 함수가 호출될 때 전달해주기 위한 버퍼인 prevB 버퍼를 추가하는 것이 핵심이다. 이번엔 Java로 풀어봤다.
public class Solution extends Reader4 {
/**
* @param buf Destination buffer
* @param n Number of characters to read
* @return The number of actual characters read
*/
int prevI = 0;
char[] prevB = new char[4];
public int read(char[] buf, int n) {
int four = 4;
int cnt = 0;
char[] buf4 = new char[4];
for (int i=0; i<prevI; i++) {
buf[cnt++] = prevB[i];
}
while (cnt < n && four == 4) {
four = read4(buf4);
for (int i=0; i<four; i++) {
buf[cnt++] = buf4[i];
}
}
prevI = 0;
if (cnt > n) {
for (int i=n; i<cnt; i++) {
prevB[prevI++] = buf[i];
}
}
return Math.min(cnt, n);
}
}
반응형
'기술(Tech, IT) > 리트코드(LeetCode)' 카테고리의 다른 글
[LeetCode] 267. Palindrome Permutation II (0) | 2023.02.14 |
---|---|
[LeetCode] 266. Palindrome Permutation (0) | 2023.02.13 |
[LeetCode] 157. Read N Characters Given Read4 (0) | 2023.02.10 |
[LeetCode] 265. Paint House II (0) | 2023.02.08 |
[LeetCode] 359. Logger Rate Limiter (0) | 2022.09.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 투 포인터
- defaultdict
- Computer Graphics
- 이코노미스트 에스프레소
- C++
- min heap
- join
- Android
- 리트코드
- 소켓 프로그래밍
- machine learning
- 이코노미스트
- 딕셔너리
- 오블완
- leetcode
- Hash Map
- socket programming
- ml
- DICTIONARY
- I2C
- tf-idf
- Python
- The Economist Espresso
- 티스토리챌린지
- The Economist
- java
- 머신 러닝
- 파이썬
- vertex shader
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함
반응형