본문 바로가기

전체 글

(94)
2563번: 색종이(Java) 색종이가 겹치는 경우의 수는 너무 많아서 그냥 도화지를 만들고 한칸씩 칠해나가는 방법으로 문제를 해결했다. 2차원 배열로 도화지를 만들고 좌표를 입력받을 때 마다 두 좌표의 + 10 범위를 돌면서 칠해져 있지 않다면 칠하고 넓이를 1씩 증가시켰다. import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int area = 0;//넓이 int x, y;//입력받을 좌표 boolean[][] paper = new boolean[101][101];//도화지 for(int i = 0; i
안드로이드 공부 기초 10(Navigation) 지금까지 공부했던 내용을 토대로 Navigation Drawer가 있는 프로그램을 만들었다. Andoird Studio에서 제공하는 Navigation Drawer Activity를 사용해 만들었는데, 새 프로젝트를 만들었을 때 프로그램의 구조가 너무 복잡해서 공부하고 파악하는 데 시간이 많이 걸렸다. 우선 프로그램 구조부터 살펴보자. activity_main은 app_bar_main과 nav_view가 있다. app_bar_main은 아무 행동도 하지 않았을 때의 화면이고 nav_view는 Navigation Drawer를 열었을 때의 화면이다. app_bar_main엔 다음 세 가지가 있다. content_main : 메인 화면으로 Fragment를 띄우는 공간이다. tool_bar : toolbar..
10773번: 제로(Java) Stack을 이용해 푸는 간단한 문제다. Stack을 직접 구현할 수도 있지만, java.util에서 제공하는 Stack을 이용해 풀어보겠다. 0이 아닌 정수를 입력받으면 push 하고 0을 입력받으면 pop을 하면 된다(0일 경우 지울 수 있는 수가 있음을 보장하기 때문). 모든 Stack 데이터 삽입/삭제가 완료된 후, Stack을 순환하며 값을 더해주면 된다. import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Stack data = new Stack(); int n =scanner.nextInt(); int t; for(int i ..
14425번: 문자열 집합(Java) 문자열을 검사하기 위해 hashCode()를 사용했다. 입력받은 String의 hashCode를 넣기 위해 정수를 저장하는 List를 만들었다. public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List data = new LinkedList(); String temp;; int cnt = 0; int n = scanner.nextInt(); int m = scanner.nextInt(); for(int i = 0; i
10814번: 나이 순 정렬(Java) HashMap을 이용해 풀었다. HashMap의 key 값으로 나이를 주었고, 이름은 LinkedList에 add 해 주었다. 이렇게 하면 나중에 출력할 때 pop()을 사용해서 가입 순서대로 출력할 수 있기 때문이다. 우선 나이와 이름을 입력받고 해당 나이의 가입자가 없다면 LinkedList을 하나 만들어 입력받은 이름을 add해준 뒤 put()을 통해 나이와 새로 만든 LinkedList을 넣었다. if(data.get(age) == null) { LinkedList temp = new LinkedList();//새로운 LinkedList를 만든다 temp.add(name);//이름을 추가해준다 data.put(age, temp);//나이와 LinkedList를 HaspMap에 넣어준다 } 만약 해..