목록전체 (348)
파게로그
문제 링크: 11651번 좌표 정렬하기 2 https://www.acmicpc.net/problem/11651 정렬에 대해서 특별한 것은 없다. 다만 nextInt()가 입력받는 것은 정수까지이다. 정수 뒤의 \n은 바로 뒤의 nextLine()이 입력받기에 Exception이 발생한다. 따라서 nextLine()을 사용하기 전, nextLine()을 한 번 더 호출하여 \n를 처리하도록 한다. import java.util.*; class Pos implements Comparable { int x; int y; public Pos(int x, int y) { this.x = x; this.y = y; } public String toString() { return x + " " + y; } publi..
문제 링크: 10814번 나이순 정렬 https://www.acmicpc.net/problem/10814 주의해야 할 사항에 대해 주석으로 달아두었다. import java.util.*; class Member implements Comparable { // Comparable 주의 int age; String name; public Member(int age, String name) { this.age = age; this.name = name; } public String toString() { return age + " " + name; // 문자열 연결할 때, 문자를 연결하면 ASCII 코드값이 연결됨 // ' '가 아니라 " "를 연결해야 함 } @Override public int compar..
문제 링크: N번 제목 https://www.acmicpc.net/problem/문제번호 파이썬은 확실히 편하긴 하다... 말도 안되게 편하다고 생각한다. 다만 항상 Java에도 익숙해지는 것이 필요하다! Python # 입력 n = int(input()) words_set = set() for i in range(n): words_set.add(input()) # 리스트로 변환 words_list = list(words_set) # 정렬 sorted_words_list = sorted(words_list, key = lambda x: (len(x), x)) # 출력 for item in sorted_words_list: print(item) Java import java.util.ArrayList; i..
문제 링크: 6603번 로또 https://www.acmicpc.net/problem/6603 자료구조 시간에 순열을 재귀로 구현하는 것을 배울 때, 조합은 어떻게 할 수 있을지 고민했었던 기억이 있다. 아이디어 자체는 비슷하다. 순열에서 원래의 배열대로, 그리고 swap한 배열대로 출력하는 것처럼 조합도 마찬가지로 어떤 원소가 포함된 것, 그리고 그렇지 않은 것으로 나누면 생각하기가 쉽다. Python으로 구현하면 mutability 때문에 조금 귀찮아질 것 같아서 C++로 구현했다. #include #include #define LOTTO_TARGET_SIZE 6 using namespace std; void comb(vector &arr, vector &combs, vector cur, int st..
상수형 변수 선언 /* const가 아니라 final이다! */ final int COKE_VOLUME = 500; final String GREETING = "Hello, world!"; 입력 종료될 때까지 받기 import java.util.Scanner; import java.util.ArrayList; import java.util.Iterator; class Main { public static void foo(String str) { Scanner sc = new Scanner(str); ArrayList arr = new ArrayList(); while (sc.hasNext()) { int n = sc.nextInt(); arr.add(n); } System.out.println("for문..
문제 링크: 1991번 트리 순회 https://www.acmicpc.net/problem/1991 순회하는 것보다 Java에서 char과 int 사이 캐스팅이 더 헷갈렸다. 왜 따로따로 캐스팅하면 계산이 안 되는지에 대해서 나중에 다시 알아봐야겠다. 그리고 트리의 노드들이 순서대로 제시되지 않을 때에는 해당하는 행에 맞추어 넣어준다. import java.util.Scanner; import java.util.ArrayList; public class Main { public static void printPath(ArrayList path) { for (int i = 0; i < path.size(); i++) { char cur = (char)(path.get(i) + 'A'); System.out..
1.4 Operating-System Structure multiprogramming을 가능하게 한다. 이를 통해 CPU 이용률을 향상시킨다. - 메모리에 동시에 몇 개의 작업을 유지한다. - 작업은 초기적으로 디스크 상의 job pool에 유지된다. 이는 메인 메모리에의 할당을 위해 디스크에 상주한다. time sharing(시분할, or multitasking)은 멀티프로그래밍의 논리적 확장이다. - 다수의 작업 간 전환이 굉장히 빠르게 일어나서 사용자들을 그것을 알아차릴 수 없어, interact가 가능하다. - user는 입력 장치를 통해 OS에 instruction을 주고 -> 출력 장치를 통해 즉각적인 결과를 기다린다. - 따라서 resopnse time이 짧아야만 한다. 프로세스: A pro..
문제 링크: 2448번 별 찍기 - 11 https://www.acmicpc.net/problem/2448 머릿속에서 프랙탈을 그려나가는 것과, 실제로 코드를 이용해서 출력하는 것과의 차이는 아마 쪼갤 때 공백을 어떻게 포함하느냐의 문제가 핵심인 듯하다. 삼각형은 단순히 '가운데 정렬'로 보이지만 앞에 그 만큼의 공백이 앞에 있어야 한다든가... 그런데 여기서 삼각형에 접하는 사각형만큼을 하나의 덩어리로 볼 것인지 또는 그 앞의 공백을 모두 포함하는지부터 생각을 하는 편이 좋다. 결론은, star(n)이 호출하는 star(prev)가 return하는 배열이 삼각형에 접하는 사각형만큼만 딱 그려내주고, 그 앞의 공백들은 어차피 점차 길이가 감소하는 반쪽짜리 삼각형이기에 맨 마지막에 삽입해줄 수 있다. 이걸..