개발은 JAVA, 알고리즘은 C/C++을 했던 사람들을 위해..
1. 실제 사용 예시
// 입력(한 줄 단위)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
// 공백을 포함한 입력에 활용 ex) 0 10 500 ..
StringTokenizer st = new StringTokenizer(str);
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
..
// 공백 없을 땐 그냥
for(i) int n = Integer.parseInt(str.charAt(i));
// 문자열 양 옆 공백제거
String str = br.readLine().trim();
// 선언 예시
public class Main {
// 구조체
static class StrEx {
int a;
char b;
...
public StrEx(int a, char b, ...){
super();
this.a = a;
this.b = b;
...
}
}
static class Info {
int y, x, d, cnt;
public Info(int y, int x, int d, int cnt) {
super();
this.y = y;
this.x = x;
this.d = d;
this.cnt = cnt;
}
}
// 전역변수
static int n, map[][];
static int[][] map2 = { {..}, {..}, ... };
static List<Integer> adj[];
static Queue<StrEx> q = new LinkedList<>();
static Queue<Info> pq = new PriorityQueue<>(new Comparator<Info>() {
@Override
public int compare(Info a, Info b) {
if (a.cnt < b.cnt)
return -1;
else if (a.cnt > b.cnt)
return 1;
else
return 0;
}
});
// 전역함수
static boolean cmp() {
for (int i = 0; i < N - 1; i++) {
String s1 = num[i], s2 = num[i + 1];
if (s1.length() < s2.length())
if (s2.startsWith(s1))
return false;
}
return true;
}
public static void main(String args[]) throws Exception {
/*
input
*/
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
map = new int[n][m];
adj = new List[n + 1];
for (int i = 1; i <= n; i++)
adj[i] = new ArrayList<>();
// queue
q.offer(new StrEx(1, 'b', ...));
int a = q.peek().a;
char b = q.peek().b;
q.poll();
// pq.offer(), peek(), poll()
// stack
Stack<Character> s = new Stack<>();
s.add('a');
s.peek();
s.pop();
// 배열관련
String[] num = new String[10];
Arrays.sort(num);
List<String> words = new ArrayList<String>();
words.add("abc");
words.add("zxc");
Collections.sort(words, new Comparator<String>() {
@Override
public int compare(String a, String b) {
if (a.length() < b.length())
return -1;
else if (a.length() > b.length())
return 1;
else { // a.length() == b.length()
if (a.compareTo(b) < 0)
return -1;
else {
return 1;
}
}
}
});
System.out.println(words.get(0));
}
}
2. String
- String.valueOf() - 파라미터가 null이면 문자열 "null"을 만들어서 반환한다.
- toString() - 대상 값이 null이면 NPE를 발생시키고 Object에 담긴 값이 String이 아니여도 출력한다.
3. Collection(array, List, ArrayList, Arrays.sort, Collection.sort..)
내가 정리한..
[JAVA] Collection API
0. API란 다양한 정의가 있겠지만 "프로그램이 제공하는 함수"정도로 넓게 생각하자 1. JAVA의 data 저장 방법 3가지 변수 배열 Collection API - 하나의 data - 기본형&참조형 - 여러 개의 data - 참조형 - 동
dmzld.tistory.com
'알고리즘 > 알고리즘풀면서...' 카테고리의 다른 글
JavaScript 팁 (0) | 2022.05.11 |
---|---|
문자열 알고리즘관련 (0) | 2022.05.08 |
다시 풀어볼만한 문제 모음 (1) | 2021.10.03 |
최단경로 알고리즘 정리 : 다익스트라, 벨만포드, 플로이드-와샬 (0) | 2021.08.29 |
C/C++ 팁 (0) | 2020.11.04 |