전체 글 244

[안드로이드] ② Palette

📌 View - 모든 뷰들의 부모 클래스 -> View 클래스가 가지고 있는 필드나 메소드는 모든 뷰에서 공통적으로 사용 가능 - 모든 뷰는 정수로 된 id(식별자)를 갖는다. - 뷰의 크기: match_parent, wrap_content, 숫자 지정 - 뷰의 배경색: background 속성 변경 (16진수로 RGB 값 표시) - 뷰의 표시 여부: visibility 속성 설정 (0-visible, 1-invisible, 2-gone) - padding: 뷰와 콘텐츠와의 간격 - margin: 컨테이너와 뷰와의 간격 1. TextView - 화면에서 텍스트를 표시할 때 사용 text 표시할 텍스트 textSize 텍스트의 크기 지정 textColor 텍스트의 색상 지정 textStyle 텍스트의 스타..

*/Android 2022.09.28

[안드로이드] ① Manifest / 4대 컴포넌트 / Intent

✅ Manifest 개요 https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko - 모든 앱 프로젝트는 AndroidManifest.xml 파일을 포함해야 한다. - 매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다. - 매니페스트 파일은 다음과 같은 내용을 포함한다. · 앱의 패키지 이름 · 앱의 구성 요소 · 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스하기 위해 필요한 권한 · 앱에 필요한 하드웨어 및 소프트웨어 기능 ✅ Manifest 주요 속성 10가지 1) - AndroidManifest.xml 파일의 루트 요소로, 요소를 포함해야 한다. ..

*/Android 2022.09.27

백준 1766: 문제집 (Python)

https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 위상정렬을 이용해서 풀면 되는데 '먼저 푸는 것이 좋은 문제'에 대한 정보를 간선으로 저장하고 가능하면 쉬운 문제를 먼저 풀어야 하는데 난이도는 1번~n번 차례대로 되어 있으니 큐를 오름차순으로 정렬해서 쓰면 된다. -> 우선순위 큐 사용함 # 우선순위큐 from queue import PriorityQueue # 생성 q = PriorityQueue() q = Pr..

알고리즘/백준 2022.08.05

백준 2252: 줄 세우기 (Python)

https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net import sys from collections import deque input = sys.stdin.readline n, m = map(int, input().split()) students = [[] for _ in range(n+1)] # 간선에 대한 정보 (순서 저장) indegree = [0] * (n+1) # 진입차수 for _ in ran..

알고리즘/백준 2022.08.05

백준 2887: 행성 터널 (Python)

https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net 처음에는 1774번(우주신과의 교감) 문제처럼 비용에 따른 간선을 모두 정의해주었다. 하지만 문제 조건에서 n의 수가 굉장히 크기 때문에 메모리 초과가 발생한다. import sys input = sys.stdin.readline def find(parent, x): if parent[x] != x: parent[x] = find(parent, parent[x]) ..

알고리즘/백준 2022.08.04

백준 1774: 우주신과의 교감 (Python)

https://www.acmicpc.net/problem/1774 1774번: 우주신과의 교감 (1,1) (3,1) (2,3) (4,3) 이렇게 우주신들과 황선자씨의 좌표가 주어졌고 1번하고 4번이 연결되어 있다. 그렇다면 1번하고 2번을 잇는 통로를 만들고 3번하고 4번을 잇는 통로를 만들면 신들과 선자씨끼 www.acmicpc.net 크루스칼 알고리즘에서 이미 연결된 노드들을 미리 연결해주고 노드들의 간선을 직접 정의해주면 되는 문제다 처음 생각했던 건 이미 연결된 통로들을 따로 저장하고 합친 후 그 통로들을 빼고 간선들을 모두 돌면서 union하는 거였는데 시간 초과가 떴다ㅠ def find(parent, x): if parent[x] != x: parent[x] = find(parent, pare..

알고리즘/백준 2022.08.04

백준 1197: 최소 스패닝 트리 (Python)

https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 일반적인 크루스칼 알고리즘으로 풀면 된다. 1. 간선 -> 비용 기준 오름차순 정렬 2. 사이클이 발생하지 않으면(= parent가 같지 않으면) union 한번 에러났었는데,,, 어이없게도 cost 기준으로 정렬한다는 생각에 사로잡혀서 간선에 대한 정보 a, b, c를 입력 받을 때 c, a, b로 입력받음,,ㅎ 실수하지 말자 import sys s..

알고리즘/백준 2022.07.29

백준 4195: 친구 네트워크 (Python)

https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net 입력받는 요소가 사람이름이기 때문에 숫자로 관리하기 위해 딕셔너리(people)를 선언하고 1. a, b 입력받아서 2. 딕셔너리에 존재하지 않으면 추가, parent 추가 3. union 그 후 연결되어 있는 요소들의 개수를 출력하기 위해 원래 count 함수를 썼는데 제대로 못 잡아내길래 for문을 썼다 ㅎㅎ시간초과 import sys sys.setrecursionlimit(1000..

알고리즘/백준 2022.07.28

백준 1976: 여행 가자 (Python)

https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 문제의 해결법은 쉽게 생각해낼 수 있었다. 입력된 여행 계획의 도시들이 서로 연결되어 있는지만 확인하면 된다. 도시들의 연결 정보를 입력받을 때 1이면 union해준다. 계획을 입력받은 후 시간을 줄이기 위해 리스트에서 중복 원소를 제거해주고 find를 통해 모두 같은 부모를 가지고 있는지(= 하나의 집합인지) 확인해주면 된다. def find_parent(parent, x): if parent[..

알고리즘/백준 2022.07.28

백준 1717: 집합의 표현 (Python)

https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 이코테에서 풀었던 문제 그대로 나왔다. https://sssbin.tistory.com/193 그래서 알고리즘 다시 정리한다는 마음으로 내 손으로 직접 풀었지만 ,, 시간 초과로 실패 def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return ..

알고리즘/백준 2022.07.28