출처: https://3months.tistory.com/307 [Deep Play]

전체 글 230

[BOJ] 13701 중복제거 C++

https://www.acmicpc.net/problem/13701 13701번: 중복 제거 문제: N개의 정수 A1, A2, ..., AN 을 읽고, 이들 중에서 반복되는 수를 제외하고 남은 N'개의 수 B1, B2, ..., BN’ 을 입력된 순서대로 출력하시오. 이때, 0 ≤ Ai < 225 = 33554432, i=1,2,…,N. 입력의 개수 N은 1 www.acmicpc.net 수들이 주어졌을 때, 중복한 수가 온다면 출력하지 않는 문제이다. 주어진 메모리가 8MB 밖에 되지 않으므로 비트마스킹으로 이용해야 한다. int형은 4byte 이므로 4*8=32bit이다. 따라서 32가지의 숫자를 저장할 수 있다. 최대 2^25의 수가 주어지기 때문에 2^25/32=2^20의 크기의 배열이 있다면 주어..

백준/Bit Masking 2021.08.14

[BOJ] 11723 집합 C++

https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 메모리를 4MB만 주어지기 때문에 비트마스킹으로 풀어야 하는 문제이다. 비트마스킹의 개념을 알고 싶다면 꼭 풀어야할 문제. 코드 #include #include using namespace std; int M, num, BIT=0; string s; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>M; while(M--){ cin>>s; //비스마스킹에서 1n..

백준/Bit Masking 2021.08.13

[BOJ] 11812 K진 트리 C++

https://www.acmicpc.net/problem/11812 11812번: K진 트리 첫째 줄에 N (1 ≤ N ≤ 1015)과 K (1 ≤ K ≤ 1 000), 그리고 거리를 구해야 하는 노드 쌍의 개수 Q (1 ≤ Q ≤ 100 000)가 주어진다. 다음 Q개 줄에는 거리를 구해야 하는 두 노드 x와 y가 주어진다. (1 ≤ x, y www.acmicpc.net 오랜만에 보는 매우 쉬운 문제. 자식 노드를 N이라고 할 때, 부모 노드는 (N-1)/K라는 것을 이용하면 금방 풀린다. 단, 출력이 많으므로 ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);을 하는 것을 잊지말자!(개고생함) #include using namespace std; long long..

백준/Tree 2021.08.13

[BOJ] 4256 트리 C++

https://www.acmicpc.net/problem/4256 4256번: 트리 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 노드의 개수 n이 주어진다. (1 ≤ n ≤ 1,000) BT의 모든 노드에는 1부터 n까지 서로 다른 번호가 매겨져 있다. 다음 www.acmicpc.net 이진트리에서 전위순회와 중위 순회가 주어졌을 때, 후위 순회를 구하는 문제이다. 저번에 후위 순회와 중위 순회가 주어졌을 때 전위 순회를 구하는 문제를 풀어서 쉽게 풀 수 있었다. https://coderecord.tistory.com/5 [BOJ] 2263 트리의 순회 C++ https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1≤..

백준/Tree 2021.08.11

[BOJ] 2533 사회망 서비스(SNS) C++

https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net 알고리즘의 분류에 트리, dp 이렇게 적혀 있길래 한참 고민했다. BFS를 이용하여 각 depth마다 최소로 필요한 얼리어답터들을 저장하며 풀었는데 예외상황이 발생했다. 그래서 그냥 dfs에 조건을 넣어서 풀었다. 조건 1. 자식에 리프노드가 존재한다면 무조건 얼리어답터가 되야 한다. 2. 자식 중에 얼리어답터가 아닌 사람이 한 명이라도 존재한다면 부모는 얼리어답터가 돼야 한다. 이 조건을 ..

백준/DFS,BFS 2021.08.11

[BOJ] 5052 전화번호목록 C++

https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 트리라고 적혀있어서 들어갔는데 그리디가 먼저 보여서 그리디로 풀었다. C++의 STL을 활용하면 아주 쉽게 풀 수 있는 문제이다. 전화번호가 12345 12 1589 98 159 이렇게 주어졌다고 하자. string으로 값을 받고 배열 arr에 저장 후 sort를 해주면 사전 순으로 sort를 해주는데 그럼 12 12345 1589 159 98 이렇게 sort가 된다. 여기..

백준/Greedy 2021.08.10

[Android] 단순한 계산기

vertical Layout 안에 horizontal Layout을 넣어서 계산기의 레이아웃을 완성시켰다. Layout을 다루는 것이 많이 익숙해진 거 같다. 추가적으로 배운것이 있다면 textSize로 글자 크기를 testColor로 글자 색깔을 바꿀 수 있다는 것이다. package com.example.calculatpr; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import an..