[BOJ]11723 집합 (java,kotlin)
❔문제❔
🙌Solution🙌
뭔가 문제를 읽으면서 set을 사용하면 딱 좋겠다 생각을 했는데 Set의 의미가 집합이라는 의미였다.😅
import java.io.*;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
static private Set<Integer> set= new HashSet <Integer>();
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
int m=Integer.parseInt(br.readLine().trim());
for(int i=0;i<m;i++){
String[] input=br.readLine().trim().split(" ");
switch(input[0]){
case "add" : add(Integer.parseInt(input[1]));
break;
case "remove" : remove(Integer.parseInt(input[1]));
break;
case "check" : bw.write(check(Integer.parseInt(input[1]))+"\n");
break;
case "toggle" : toggle(Integer.parseInt(input[1]));
break;
case "all" : all();
break;
case "empty" : empty();
}
}
bw.flush();
}
static void add(int x){ set.add(x); }
static void remove(int x){ set.remove(x); }
static int check(int x){return (set.contains(x))?1:0;}
static void toggle(int x){
if(!set.contains(x))set.add(x);
else set.remove(x);
}
static void all(){
IntStream st=IntStream.rangeClosed(1,20);
set=new HashSet<Integer>();
set.addAll(st.boxed().collect(Collectors.toList()));
}
static void empty(){
set=new HashSet<Integer>();
}
}
🚀Advanced🚀
- IO시간 줄이기 위해 String,String을 검사하지 않고 앞
- 입력 특성 상(1~20) Set을 안 쓰고 배열로 구현도 가능
- set 타입을 굳이 Integer로 하지 않고 String으로 하는것도 같은 결과일 듯
🔠Language Change(kotlin)🔠
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main(){
val br= BufferedReader(InputStreamReader(System.`in`))
val bw= BufferedWriter(OutputStreamWriter(System.out))
val m=br.readLine().toInt()
var set=mutableSetOf<String>()
for(i in 0 until m){
val input=br.readLine().split(" ")
when(input[0]){
"add"->set.add(input[1])
"remove"-> set.remove(input[1])
"check"->bw.write(if(set.contains(input[1])) "1\n" else "0\n")
"toggle"->if(set.contains(input[1]))set.remove(input[1])else set.add(input[1])
"all"-> set= List(20){"${it+1}"}.toMutableSet()
"empty"->set= mutableSetOf()
}
}
bw.flush()
}
댓글남기기