본문 바로가기
728x90

전체 글255

15685 드래곤 커브 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커� www.acmicpc.net (풀이) 규칙을 찾는것이 가장 중요하다. 만약 0세대가 0부터라면 1세대는 0,1 2세대는 0,1,2,1 3세대는 0,1,2,1,2,3,2,1 이전 세대의 끝에서부터 처음 인덱스까지 반대숫자를 하나 더해주며 나열해주면 된다. (역순 +1 ) 3이 넘어가면 1이 되므로 모듈 연산자를 통해 보정을 해주었다. #include #include #include using nam.. 2020. 8. 7.
17140 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net (풀이) (풀이) 문제의 조건 R연산 , C연산 R연산 행의 개수 >= 열의 개수 C연산 행의 개수 < 열의 개수 풀이 순서 1. 이 문제의 모든 입력값은 3x3 행렬로 시작한다. 2. 가장 먼저 R,C연산에 대해 행 또는 열 정렬을 한다. 3. 행 또는 열에서 (원소수, 횟수)가 몇번 나왔는지 검사한다. 4. 3번에서 원소수, 횟수에 대해 정보를 가지고 있는 vector에 대해 정렬.. 2020. 8. 7.
TCP 와 UDP TCP(Transmission Control Protocol) TCP는 전송 제어 프로토콜(Transmission Control Protocol)의 약자이다. OSI계층에서 4 계층인 전송 계층(Transport Layer)에 속하며, 아래 그림에서 보이듯 Network 계층 위에서 동작하는 프로토콜인것을 알 수 있다. TCP를 기반으로 한 많은 수의 애플리케이션 프로토콜들이 IP 위에서 동작하기 때문에 묶어서 TCP/IP로 부르기도 한다. 또한, TCP는 웹 브라우저들이 WWW(World Wide Web) 에서 서버에 연결할때 사용되며, 이메일 전송이나 파일 전송에서도 사용된다. TCP는 다음과 같은 특징이 있습니다. 1. TCP 특징 (1)연결형 서비스 1) 연결을 위해 할당되는 논리적인 경로가 있습.. 2020. 7. 31.
17142 연구소3 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net (풀이) 연구소2 문제와 유사하지만, 비활성화된 바이러스로 반례가 존재한다. 기존과 같은 풀이방식의 Depth로는 아래의 반례 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 0 0 2 0 1 1 1 1 1 를 통과하기 어렵다. 따라서 0의 갯수를 카운트하여 확산이 가능한 부분에 대해서 확산 갯수와 0의 갯수가 같아지는 시점에 전부 확산 되었다고 판단. #include #include #i.. 2020. 7. 30.
17141 연구소2 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이�� www.acmicpc.net (풀이) 바이러스를 퍼트릴 수 있는 특정 지점들에서 바이러스가 퍼지는 최단시간을 구하는문제. 바이러스를 놓을 수 있는 공간 E개라고한다면 M개를 살포할 수있으므로 (1> arr[i][j]; if(arr[i][j]==1) check[i][j] = arr[i][j]; if (arr[i][j] == 2) virus_pos.push_back(make_pair(i, j)); } } } 2020. 7. 30.
17471 게리맨더링 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net (풀이) 문제의 조건 1. 각 구역은 두 선거구중 하나에 포함되어야 한다. 2. 각 구역은 모두 연결되어 있어야 한다. 3. 두 구역으로 나누었을때 두 구역의 인구차의 최소값을 구하라. 문제의 첫 번째 조건을 만들기 위해 백트래킹을 이용한 조합을 사용하였다. divide_zone(int cnt, int idx, int limit) check_choice[]의 T구역은 true, F구역은 false로 구분, 두 선거구중.. 2020. 7. 27.
16988 Baaaaaaaaaduk2 (Easy) https://www.acmicpc.net/problem/16988 16988번: Baaaaaaaaaduk2 (Easy) 서기 2116년, 인간은 더 이상 AI의 상대가 되지 못하게 되었다. 근력, 순발력, 창의력, 사고력, 문제해결능력, 심지어 인간미조차 AI가 인간을 앞선다. AI가 온 지구를 관리하며 이미 인류는 지구의 www.acmicpc.net (풀이) 이 문제는 빈 칸에 자신의 돌을 2개 두고 상대방의 돌을 최대 몇개 잡을 수 있는지 묻는 문제이다. 자신의 돌을 2개 선택 하는 경우의 수를 먼저 찾아준다. (빈 칸의 갯수) Combination 2 조합을 이용하여 모든 경우의 수를 다 찾아준다. 그리고 해당 각 경우의 수 마다 흰색돌을 DFS 또는 BFS로 순회하여 빈칸이 존재하는지 여부를 파.. 2020. 7. 25.
16985 Maaaaaaaaaze https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net (풀이) 이 문제는 바둑이와 난이도는 같지만, 경우의수가 하나 더 추가되어 구현이 복잡하다. 문제의 요구조건은 5x5x5 3차원 배열의 각 층을 무작위로 선택하여 선택한 층들을 다시 무작위로 회전시켯을때 미로를 탈출할 수 있는 가장 최소거리를 구하는 문제이다. 이 문제를 층을 나누는방식과, 회전시키는 부분을 분리해보면 무작위로 층을 선택하는 경우의 수는 5!이 나온다. 각 층.. 2020. 7. 25.
15686 치킨배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net (풀이) 문제의 조건에 치킨집 M의 수는 13개 보다작거나 같다. 폐업 시키지않은 치킨집 수를 최대 M개 고려했을때 치킨 거리가 가장 최소가 될때의 최소값을 찾는문제. 치킨집을 폐업 시키는 제한이 없다. 따라서 1개를 폐업시키든 2개를 폐업시키든 폐업시키지 않든 폐업 시키지 않은경우에도 최소거리를 찾을 수 있다. 도시 치킨 거리를 가장 최소로 하기 위해서 각 치킨집에서 집들과.. 2020. 7. 25.
[쓰레드 동기화] Interrupt(이벤트) 방식의 AutoResetEvent 스핀 락(Spin lock)처럼 폴링 방식의 스레드 대기는 CPU 점유율이 올라갈 수 있다. 무한정 대기상태라는 말은 계속 잠금이 풀릴때까지 확인하는 방법이다. 스레드가 무한정 대기하는 부담을 줄일 수 있는 방법이 있다. 하지만, 이것은 커널단의 호출로 문맥교환의 오버헤드가 발생된다. 더보기 마이크로 프로세서에서의 단일코어 단일 프로세스 예를 들어보면, 폴링 방식으로 어떠한 값의 state 변화를 감시하고 계속 대기 시켜놓으면 그 일만 하며 무한정 대기한다. 하지만, 내부 혹은 외부인터럽트를 사용하면, 코드를 한줄 한줄 실행 중간에 들어온 인터럽트를 확인하고, 현재 작업을 중단 시킨다. 작업을 중단시키는 것은 아얘 작업을 비우는 것이아닌 레지스터와 내부 메모리의 어떤 지점에 현재 작업정보와 다음 작업해야.. 2020. 7. 21.
[쓰레드 동기화] Thread [Sleep, Yield] , ContextSwitching 랜덤(Random) 접근 스레드가 while 루프내에서 스핀 락 처럼 무한정 대기하며 불필요한 작업을 하는 것이아닌 랜덤적으로 접근하여 해장 잠금(locked)을 사용하는 방법이다. 여기서 랜덤적으로 접근이란, 한 가지 예시적 상황을 보자. 처음 들어온 스레드가 임계구역에 들어가서 어떤 변수를 사용중인 상황에 두번째 스레드가 임계구역에 들어 가려고 잠금을 획득하려는 찰나 누군가 사용하고 있다. 스핀 락의 경우 폴링방식으로 무한정 대기하지만, 이 랜덤 접근의 상황에서는 두번째 스레드가 "아 누군가 쓰고있네 잠시 있다 와야지 난 좀 이따가 올게 "의 방법이다. 이 방법을 사용하면 불필요한 연산이나 작업을 줄여 CPU의 점유율을 낮출 수 있지만, 반대로, "잠시 있다 와야지" 라는 상황이 무한정 발생한다면, .. 2020. 7. 21.
[쓰레드 동기화]스핀 락(Spin Lock) 구현 스핀 락 스핀락은 폴링 방식의 동기화 처리를 하는 방식이다. 마이크로 프로세서 에서 내부 인터럽트를 사용하지 않고 값의 state 가 바뀌는지 while(1) 을 이용하여 확인 하는것과 같다. 한 가지 예를 보자 num 이라는 데이터를 첫번째 스레드에선 +1 씩 계속 증가시키고 두번째 스레드에선 -1 씩 계속 감소시키는 행위를 각각 10만번 씩 하면 직관적으로는 당연히 프로그램이 뻗지 않는이상 당연히 0이 나올 것이다. 하지만 이전 포스팅에서 자원 접근에 대한 동기화가 이루어 지지 않으면 한 쪽에서 값을 변경 시켜도 다른 쪽에선 이전에 가지고 있던값을 최신이라고 저장하고 있다가 값을 변경시키는 현상이 발생하므로 의도했던 데이터 갱신이 이루어지지 않는다. 이를 해결하기 위해 첫번째 폴링 방식의 스핀락을 구.. 2020. 7. 20.
17136 색종이 붙이기 https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크�� www.acmicpc.net 문제 풀이의 접근은 다음과 같이 진행하였다. 각 색종이의 size(1~5)를 5장씩 사용해보며 종이의 1의 갯수가 모두 사라지면 다 붙였다고 판단하고 그때 붙인 색종이의 갯수가 최소값을 구하여 출력하였다. 먼저 문제의 조건에서 1. 종이가 0인 부분이 붙이면 안된다. 2. 덮어쓰기가 불가능하다. 3. 붙이려는 색종이가 10x10의 종이 사이즈를 초과하면 안된다. 조건 1을 검사하기 위.. 2020. 7. 19.
[쓰레드 동기화] Monitor 와 lock (IPC) (lock > Monitor 편의성) https://docs.microsoft.com/ko-kr/dotnet/api/system.threading.monitor?view=netcore-3.1 Monitor Class (System.Threading) 개체에 대한 액세스를 동기화하는 메커니즘을 제공합니다.Provides a mechanism that synchronizes access to objects. docs.microsoft.com Monitor Interlock과 같이 공유 자원 선점의 동기화를 위해 사용된다. Interlock의 경우 특정 쓰레드 동기화가 필요한 코드 블럭 { 임 계 구 역 } 을 동기화 할때 쓰기보다는 특정 변수의 Increment 와 Decrement를 할 때 많이 쓰인다. 코드 블럭단위의 임계구역의 진입을 제어.. 2020. 7. 18.
[쓰레드 동기화] Interlocked (공유자원과 임계구역) https://docs.microsoft.com/ko-kr/dotnet/api/system.threading.interlocked?view=netcore-3.1 Interlocked Class (System.Threading) 다중 스레드에서 공유하는 변수에 대한 원자 단위 연산을 제공합니다.Provides atomic operations for variables that are shared by multiple threads. docs.microsoft.com Remarks 이 클래스의 메서드는 스레드는 다른 스레드에서 액세스할 수 있는 변수를 업데이트 하는 동안 스케줄러 컨텍스트를 전환 하는 경우 또는 별도 프로세스에서 두 스레드가 동시에 실행 중일 때 발생할 수 있는 오류 로부터 보호할 수 있습니다.. 2020. 7. 18.
[쓰레드] TaskCreateOptions.LongRunning 테스크를 만들때 옵션에 LongRunning을 해줄 수 있는데 이것은 긴 작업이 소요될 가능성이 있는 테스크를 지정하여 쓰레드풀에서 따로 관리되게 만들어줌. 아래처럼 쓰레드 풀이 제한이 3개 이지만 실제 쓰레드 함수가 실행되는 것을 볼 수 있음. LongRunning 옵션을 취하여 Thread를 선언하여 사용할때 보다 Task를 사용하여 관리 유연성이 좋아졌다는 것을 알 수 있다. 2020. 7. 17.
[쓰레드] 쓰레드풀(ThreadPool) 쓰레드 풀 (ThreadPool) - 쓰레드 임시 대기소같은 개념이다. 관리 되어야하는 작업들이 끝나면 해당 쓰레드를 삭제하지 않고 쓰레드풀에서 임시 대기 시켰다가 다시 필요하면 사용할 수 있다. public static bool QueueUserWorkItem(WaitCallback callBack); - > WaitCallback callBack 함수를 메서드 큐에 대기시킨다. 위에선 ThreadFunc 함수를 대기 시킴, 대기 큐에 성공적으로 들어가지면 true 작업항목을 큐에 대기시키지 못하면 System.NotSupportedException이 발생. 델리게이트로 ThreadFunc의 함수포인터를 전달 시키는데 매개변수 타입이 없으면 에러가나서 사용할 매개변수가 없으면 형태만 맞춰주자. 위에서 .. 2020. 7. 17.
[쓰레드] IsBackground , join Thread IsBackground; public bool IsBackground { get; set; } 스레드가 배경 스레드인지를 나타내는 값을 가져오거나 설정합니다. 반환 값: 이 스레드가 백그라운드 스레드이거나 백그라운드 스레드가 될 예정이면 true이고, 그렇지 않으면 false입니다. 예외: T:System.Threading.ThreadStateException: 스레드가 중지되었습니다. 해당 쓰레드를 백그라운드로 돌릴것이냐 포그라운드로 돌릴것이냐 설정 할 수 있다. 디폴트(default)는 false 값을 가지고있다. true 설정을 하면 백그라운드 쓰레드로 설정하겠다는 뜻이고. 메인 쓰레드가 종료되면 백그라운드 쓰레드가 작업하던 I'm Thread 출력을 상관없이 종료 시킨다. 반대로 fa.. 2020. 7. 17.
2234 성곽 https://www.acmicpc.net/problem/2234 2234번: 성곽 문제 대략 위의 그림과 같이 생긴 성곽이 있다. 굵은 선은 벽을 나타내고, 점선은 벽이 없어서 지나다닐 수 있는 통로를 나타낸다. 이러한 형태의 성의 지도를 입력받아서 다음을 계산하는 프로� www.acmicpc.net (풀이) 1. 성의 방의 갯수는 연결요소가 몇개인지 탐색을 해서 구한다 2. 방의 최대길이는 각 연결요소의 길이중 최대합을 구한다. 3. 하나의 벽을 제거하여 얻을 수 있는 방의 최대 크기는 서로 이웃한 다른 연결요소들의 길이를 합하여 그 중 최대값이 무엇인지 구한다 EX) 서로 이웃한 방(1->5), (1->2), (2->3), (2->5) (3->4) 1과 이웃한 방이 5라면 한번 벽을 허물고 길이를 .. 2020. 7. 17.
17822 원판 돌리기 https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net (풀이) 1. rotate 함수 구현 CCW, CW 방향을 매개변수로 받아서 각각 x배수 번째의 원판을 K번 회전 시킨다. CCW인 경우 (d ==1) -> 배열을 왼쪽으로 k번 회전 시켜주면 된다. CW인 경우는 오른쪽으로 k 번 회전 2.조금 변형된 BFS 인접한 4방향탐색을 통해 원판과 인접한 숫자들이 같으면 소거한다. 하지만, 예를들어 1431 이 한개의 원판에 있을때 원판.. 2020. 7. 15.
14503 로봇 청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net (풀이) 문제의 요구 사항 1. 현재 위치를 청소한다. 2. 현재 위치에서 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다. a. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. b. 왼쪽 방향에 청소할 공간이 없다면, 그 방향으로 회전하고 2번으로 돌아간다. c. 네 방향 모두 청소가 이미 되어있거나 벽인 경우에는, .. 2020. 7. 15.
2468 안전영역 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 � www.acmicpc.net (풀이) 완전탐색 + BFS 문제 1. 문제 요구사항 파악 비가 0 (안옴) ~ 100까지 내리는데 , 그때 침수되지 않는 영역이 최대 몇개인지 구하는 문제. 2. 접근 0~100까지 비를 내려보며 BFS를 탐색하며 연결요소를 구해보았다. 3.더 나은 풀이법. 기둥의 최대높이까지만 비를 내려도 그 이상은 모두 침수되므로 굳이 100까지 내릴 필요가 없다. 효율성을 더 빠르게 할 수 있음. #inclu.. 2020. 7. 13.
9205 맥주 마시면서 걸어가기 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 문제 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발 www.acmicpc.net (풀이) 1. 잘못 접근. 문제에서 순차적으로 접근해야 하는줄 알았다. 2. 순서에 상관없이, 편의점 혹은 도착지점 까지 BFS 탐색을하며 목적지까지 맥주가 다 떨어지지 않는지 풀어야 한다. 3. 맥주가 다 떨어지는 것은 탐색까지 도착지에 다다르지 못하면 도착 하지 못한것으로 판정 4. 다음 위치를 가기 위한 조건 즉, queue에 삽입 되어야 하는 조건 check[i] = (i는 편의점 혹.. 2020. 7. 13.
2644 촌수 계산 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진� www.acmicpc.net (풀이) 문제 접근 1. 인접리스트를 이용한 BFS 2. 기본적인 인접리스트를 이용한 BFS를 구현할 수 있는지 묻는 문제 vector v 로 2차원 연결리스트를 만들고, 해당 노드와 연결된 부분을 입력과 함께 연결시켜줌. 3. 시작점부터 도착지점을 찾을때까지 너비우선탐색, DFS로도 풀리는 문제이다. 4. 못찾으면 -1출력. #include #include #include usi.. 2020. 7. 13.
1062 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net (풀이) 글자 K개를 가르쳤을떄 N개의 단어들 중에 읽을 수 있는 최대의 갯수를 출력하는 문제. 문제만 보면 난이도가 왜 골드인지 모르는데. 시간복잡도를 구하다보면 시간초과가 나는 부분이 생긴다. 1)글자 K개를 가르치는 부분의 시간복잡도를 구해보면 모든 알파벳은 26개이고, 이 26개 단어 하나 두개 사용하여 체크하면 2^26 = 약6710만 갯수이고 2) 읽을 수 있는 단어인지 검사를하.. 2020. 7. 6.
15683 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감�� www.acmicpc.net 감시 성공분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 512 MB 17939 7959 4606 40.603% 문제 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. CCTV는 감시.. 2020. 7. 5.
16943 숫자 재배치 https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작거나 같으면서, 가장 큰 값을 구해보� www.acmicpc.net 숫자 재배치 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 512 MB 619 296 218 45.228% 문제 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작거나 같으면서, 가장 큰 값을 구해보자. C는 0으로 시작하면 안 된다. 입력 첫째 줄에 .. 2020. 7. 2.
16938 캠프 준비 캠프 준비 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 512 MB 570 381 306 67.699% 문제 알고리즘 캠프를 열려면 많은 준비가 필요하다. 그 중 가장 중요한 것은 문제이다. 오늘은 백준이를 도와 알고리즘 캠프에 사용할 문제를 고르려고 한다. 백준이는 문제를 N개 가지고 있고, 모든 문제의 난이도를 정수로 수치화했다. i번째 문제의 난이도는 Ai이다. 캠프에 사용할 문제는 두 문제 이상이어야 한다. 문제가 너무 어려우면 학생들이 멘붕에 빠지고, 문제가 너무 쉬우면 학생들이 실망에 빠지게 된다. 따라서, 문제 난이도의 합은 L보다 크거나 같고, R보다 작거나 같아야 한다. 또, 다양한 문제를 경험해보기 위해 가장 어려운 문제와 가장 쉬운 문제의 난이도 차이는 X보다 크거나 같아야 .. 2020. 7. 2.
Time.deltaTime Time.deltaTime public static float deltaTime; Description 지난 프레임이 완료되는 데 까지 걸린 시간을 나타내며, 단위는 초를 사용합니다. (읽기전용) 사용자의 프레임 률(frame rate)을 독립적으로 적용하기 위해서 사용합니다. 매 프레임마다 어떤 값을 더하거나 빼는 계산을 하는 경우에, Time.deltaTime과 곱해서 사용할 수 있습니다. Time.deltaTime과 곱하는 경우에, 다음의 경우를 나타냅니다: 오브젝트를 프레임당 10미터가 아닌 초당 10미터 움직이고 싶은경우를 나타냅니다. MonoBehaviour의 FixedUpdate에서 호출되는 경우에, 고정 프레임률 delta Time을 반환합니다. OnGUI에서는 프레임당 여러번 호출될 수 .. 2020. 7. 1.
16937 두 스티커 두 스티커 Silver V 난이도 제공: solved.ac 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 512 MB 1072 367 262 35.262% 문제 크기가 H×W인 모눈종이와 스티커 N개가 있다. i번째 스티커의 크기는 Ri×Ci이다. 모눈종이는 크기가 1×1인 칸으로 나누어져 있으며, 간격 1을 두고 선이 그어져 있다. 오늘은 모눈종이에 스티커 2개를 붙이려고 한다. 스티커의 변은 격자의 선과 일치하게 붙여야 하고, 두 스티커가 서로 겹치면 안 된다. 단, 스티커가 접하는 것은 가능하다. 스티커를 90도 회전시키는 것은 가능하다. 스티커가 모눈종이를 벗어나는 것은 불가능하다. 두 스티커가 붙여진 넓이의 최댓값을 구해보자. 입력 첫째 줄에 모눈종이의 크기 H, W, 둘째 줄에 스티커의.. 2020. 7. 1.
728x90