Skip to content

Latest commit

History

History
450 lines (284 loc) · 7.78 KB

File metadata and controls

450 lines (284 loc) · 7.78 KB

입력

// 입력 (일반 경우)Scannersc = newScanner(System.in); // ("4.80초")// EOF까지 입력받기 (입력이 주어지지 않은 경우)// while(sc.hasNextInt())sc.next(); // 한 단어 (String)sc.nextline(); // 한 줄 (String)sc.nextInt(); // 한 숫자 (Integer)// 입력 (많은 경우) 이거 쓰게 되면, (throws IOException) 필요BufferedReaderbr = newBufferedReader(newInputStreamReader(System.in)); // ("0.65초")br.close(); // main 끝나기 전에 해주기// (한 줄에) 숫자 1개intN = Integer.parseInt(br.readLine()); // (String만 가능) + int형 반환intN = Integer.valueOf(bf.readLine()); // (String, Integer 가능) + Integer형 반환// (한 줄에) 숫자 2개 이상String[] nums = br.readLine().split(" ");
// 혹은StringTokenizerst; st = newStringTokenizer(br.readLine());
while(st.countTokens()!=0){
System.out.println(Integer.parseInt(st.nextToken()));
}
// tokenizeStringTokenizerst;
st = newStringTokenizer(br.readLine());

출력

// 출력 (일반 경우)System.out.println("30.00초");
// 출력 (많은 경우)// BufferedWriter ("0.95초");BufferedWriterbw = newBufferedWriter(newOutputStreamWriter(System.out));
bw.close(); // main 끝나기 전에 해주기// StringBuilder ("1.18초");StringBuildersb = newStringBuilder();
// [조합]sb.append(answer + "\n"); // 이렇게 쓰고bw.write(sb.toString()); // 한꺼번에 넣고bw.close(); // 종료해주고

파이썬과 비교하기

  1. 한줄 입력 받기

    [python]

    s=input()

    [java]

    BufferedReaderbr = newBufferedReader(InputStreamReader(System.in));
    Strings = br.readLine();
  2. 입렵받은 한줄 split()하기

    (3개 입력의 가정)

    [python]

    n, m, l = map(int, s.split())
    

    [java]

    // main method 밖staticintn, m, l;
    // main method 안StringTokenizerst = newStringTokenizer(s, " ");
    n = Integer.parseInt(st.nextToken());
    m = Integer.parseInt(st.nextToken());
    l = Integer.parseInt(st.nextToken());
  3. n줄 입력 받기

    (한 줄에 여러 수들이 있다고 가정)

    [python]

    A= [list(map(int, input().split())) for_inrange(n)]

    [java]

    // main method 밖staticintmap[][];
    // main method 안map = newint[n+1][n+1];
    for(inti=0; i<n+1; i++){
    Arrays.fill(map[i], 0);
    }
    for(inti=0; i<n; i++){
    Strings = br.readLine();
    StringTokenizerstt = newStringTokenizer(s, " ");
    intj = 0;
    while(stt.countTokens()!=0){
    map[i][j] = Integer.parseInt(stt.nextToken());
    }
    }
    // main 밖에 이렇게 해두고staticintn, m;
    staticint[][] a;
    staticboolean[][] check;
    staticint[][] group;
    // 입력 이렇게 받기BufferedReaderbf = newBufferedReader(newInputStreamReader(System.in));
    BufferedWriterbw = newBufferedWriter(newOutputStreamWriter(System.out));
    String[] st = bf.readLine().split(" "); // 3 5 이런 입력 받은 거임.n = Integer.parseInt(st[0]);
    m = Integer.parseInt(st[1]);
    a = newint[n][m]; // 해당 사이즈의 2차원 array 만들기// 출력 이렇게 하기bw.write(String.valueOf(ans%10));
    // valueOf() 함수는 >>> String 변환Stringa = String.valueOf(1, "135", true, ...); // 어떤 형이든 String으로 바꿈
  4. 형 변환

    [python]

    a=1b='5'a=int(b) # str -> intb=str(a) # int -> str

    [java]

    inta = 1;
    Stringb = '5';
    a = Integer.parseInt(b); // str -> intb = Integer.toString(a); // int -> strStringS = "nowic";
    System.out.println(S.charAt(2)); // w출력S.charAt(1)+""// char -> str
  5. 딕셔너리 사용하기

    [python]

    fromcollectionsimportdefaultdictmap=defaultdict();
    map[x] +=1;

    [java]

    HashMap<Integer, Integer> map = newHashMap<>();
    if (map.containsKey(x)) {
    inttemp = map.get(x);
    map.put(x, temp+1);
    } else {
    map.put(x, 1);
    }
    importjava.util.Map.Entry;
    for (Entry<Integer, Integer> e : map.entrySet()) {
    v.add(newPair(e.getKey(), e.getValue()));
    }
    // 새로운map.computeIfPresent(1, (key, value) -> ++value);
    map.putIfAbsent(1, 1);
    HashMap<Integer, ArrayList<Integer>> map = newHashMap<>();
    for(inti=0; i<A.length; i++){
    if(! map.containsKey(A[i])){
    map.put(A[i], newArrayList());
    }
    map.get(A[i]).add(i);
    }
  6. set 사용하기

    [python]

    a=set()
    a.add(30)
    if30ina:
    print("O(1)")

    [java]

    HashSet<Integer> s = newHashSet<>(); // or Set<Integer> set = new HashSet<Integer>();s.add(1);
  7. stack, queue

    [python]

    fromcollectionsimportdeque# ====== stack ====== #s= [] s.append(1)
    s.pop()
    # ====== deque ====== #q=deque()
    q.append(1)
    q.popleft()

    [java]

    importjava.util.*
    // ====== stack ====== //Stack<Integer> s = newStack<>();
    s.push(1);
    s.pop();
    s.peek();
    s.size();
    s.empty(); // 비우기s.isEmpty(); // 비었는지 확인// ====== queue ====== //Queue<Integer> q = newLinkedList<Integer>();
    // [넣기]q.add(1);
    // [꺼내기]q.peek(); // 맨 위 값 보기q.poll(); // 꺼냄 (없으면 null)q.remove(); // 꺼냄 (없으면 에러!)q.clear(); // 초기화// [속성]q.size();
    q.isEmpty();
    q.contains(1); // 값이 있는지 확인// ====== deque ====== //ArrayDeque<Integer> q = newArrayDeque<Integer>();
    // [넣기]q.add(1); // (원래 방향) 넣기q.push(2); // (반대 방향) 넣기// [꺼내기]q.peek(); // (원래 방향) 맨 위 값 보기q.pop(); // (원래 방향) 꺼냄 (없으면 null)q.poll(); // (원래 방향) 꺼냄 (없으면 null)q.remove(); // (원래 방향) 꺼냄 (없으면 에러!)q.peekLast(); // (원래 방향) 맨 위 값 보기q.pollLast(); // (반대 방향) 꺼냄 (없으면 null)q.clear(); // 초기화// [속성]q.isEmpty();
  8. 반복문

    [python]

    fornumin [n+1, n+2, n+3]:
    print(num)

    [java]

    for (intnum : newint[]{n+1, n+2, n+3}){
    System.out.println(num);
    }
  9. List

    [python]

    finalDevEventdevEvent=devEventQueryRepository.findDevEventById(id)
    .orElseThrow(() ->newDevEventNotFoundException(ErrorCode.DEV_EVENT_NOT_FOUND));

    [java]

    ArrayList<Integer> first = newArrayList<>();
    
    // 배열 출력System.out.println(Arrays.toString(arr));
  10. null 체크

    // null 체크Stringck = String.valueOf(something);
    if("null".equals(ck)) {
    }
  11. dfs / bfs 관용

    finalstaticint[] dx = {0,0,1,-1};
    finalstaticint[] dy = {1,-1,0,0};
  12. 초기화

    boolean[] ck = newboolean[30]; // 기본 false임.Arrays.fill(ck, true); // true로 초기화
  13. 클래스

    (노드나 이런걸로 분명 쓰임.)

    classPair {
    intx, y;
    Pair(intx, inty) {
    this.x = x;
    this.y = y;
    }
    }

cf) 자바 int => 4byte => 32bit => 양수/음수 표현 => 2^31 => 0중복 => 2^31-1