// 입력 (일반 경우)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(); // 종료해주고한줄 입력 받기
[python]
s=input()
[java]
BufferedReaderbr = newBufferedReader(InputStreamReader(System.in)); Strings = br.readLine();
입렵받은 한줄 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());
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으로 바꿈
형 변환
[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
딕셔너리 사용하기
[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); }
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);
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();
반복문
[python]
fornumin [n+1, n+2, n+3]: print(num)
[java]
for (intnum : newint[]{n+1, n+2, n+3}){ System.out.println(num); }
List
[python]
finalDevEventdevEvent=devEventQueryRepository.findDevEventById(id) .orElseThrow(() ->newDevEventNotFoundException(ErrorCode.DEV_EVENT_NOT_FOUND));
[java]
ArrayList<Integer> first = newArrayList<>();
// 배열 출력System.out.println(Arrays.toString(arr));
null 체크
// null 체크Stringck = String.valueOf(something); if("null".equals(ck)) { }
dfs / bfs 관용
finalstaticint[] dx = {0,0,1,-1}; finalstaticint[] dy = {1,-1,0,0};
초기화
boolean[] ck = newboolean[30]; // 기본 false임.Arrays.fill(ck, true); // true로 초기화
클래스
(노드나 이런걸로 분명 쓰임.)
classPair { intx, y; Pair(intx, inty) { this.x = x; this.y = y; } }
cf) 자바 int => 4byte => 32bit => 양수/음수 표현 => 2^31 => 0중복 => 2^31-1