Skip to content

Commit 0bce344

Browse files
author
jeonmin
committed
9주차_심정민
1 parent 2c21849 commit 0bce344

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed

9주차/jeongmin/79.java

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Solution {
2+
public boolean check(int[]data,int start,int size){
3+
for(int i=start+1;i<start+size+1;i++) {
4+
if (i>=data.length || data[i] >> 6 != 0b10){
5+
return false;
6+
}
7+
}
8+
return true;
9+
}
10+
public boolean validUtf8(int[] data) {
11+
int start=0;
12+
while(start<data.length){
13+
int first=data[start];
14+
//111100으로 시작하면 나머지가 3비트여야한다.
15+
if(first>>3==0b11110&&check(data,start,3)){
16+
start+=4;
17+
//1110xxxx 패턴으로 시작하는지 확인/ 나머지가 2비트여야함
18+
}else if(first>>4 ==0b1110&&check(data,start,2)){
19+
start+=3;
20+
//110xxxx 패턴으로 시작하는지 확인/ 나머지가 1비트여야함
21+
}else if(first>>5==0b110&&check(data,start,1)){
22+
start+=2;
23+
//0xxxxxxx 패턴으로 시작하는지 확인/ 1바이트 문자
24+
}else if(first>>7==0){
25+
start++;
26+
}else {
27+
return false;
28+
}
29+
}
30+
return true;
31+
32+
33+
}
34+
}

9주차/jeongmin/81.java

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution {
2+
public int[] maxSlidingWindow(int[] nums, int k) {
3+
4+
List<Integer>result=new ArrayList<>();
5+
6+
Queue<Integer> window=new LinkedList<>();
7+
8+
int currentMax=Integer.MIN_VALUE;
9+
10+
for(int i=0;i<nums.length;i++){
11+
window.add(nums[i]);
12+
13+
if(i<k-1) continue;
14+
15+
if(currentMax==Integer.MIN_VALUE){
16+
currentMax=window.stream().max(Integer::compareTo).get();
17+
}else if(currentMax<nums[i]){
18+
currentMax=nums[i];
19+
}
20+
result.add(currentMax);
21+
if(currentMax==window.poll())currentMax=Integer.MIN_VALUE;
22+
}
23+
return result.stream().mapToInt(Integer::intValue).toArray();
24+
}
25+
}

9주차/jeongmin/82.java

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public boolean contains(String str,String t){
3+
StringBuilder sb=new StringBuilder(str);
4+
5+
for(char elem:t.toCharArray()){
6+
if(sb.indexOf(String.valueOf(elem))!=-1)
7+
sb.deleteCharAt(sb.indexOf(String.valueOf(elem)));
8+
else return false;
9+
}
10+
return true;
11+
}
12+
public String minWindow(String s, String t) {
13+
for(int windowSize=t.length();windowSize<s.length()+1;windowSize++){
14+
for(int left=0;left<s.length()-windowSize+1;left++){
15+
String str=s.substring(left,left+windowSize);
16+
17+
if(contains(str,t))return str;
18+
}
19+
}
20+
return "";
21+
}
22+
}

0 commit comments

Comments
 (0)