[코딩테스트] [17232] 생명 게임 & (이분탐색) [1920] 수 찾기 & [14425] 문자열 집합
·
알고리즘/Prefix Sum
[17232] 생명 게임시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율2 초512 MB78528422446.186%문제생명 게임은 수학자 콘웨이(John Horton Conway)가 창안한 게임으로, 바둑판 모양의 격자에 '생명'을 배치하고 그 변화를 관찰하는 게임이다.  준표는 콘웨이가 창안한 생명 게임에서 사소한 조건을 바꿔 새로운 규칙의 생명 게임을 제안 해보았다.바둑판의 각 칸은 주위에 몇 개의 생명이 존재하는지에 따라 다음 상황이 아래와 같이 결정된다.생존 : 만약 현재 칸에 생명이 있고, 주위에 a개 이상 b개 이하의 생명이 있다면 현재 칸의 생명은 다음 단계에 살아남는다.고독 : 만약 현재 칸에 생명이 있고, 주위에 a개 미만의 생명이 있다면 현재 칸의 생명은 외로워서 죽는다.과밀 :..
[Computer Science] [컴퓨터구조] CPU
·
Computer Science/Computer Architecture
CPU컴퓨터 구조 중에서 가장 중요한 부품인 CPU는 중요한 개념이 많다.CPU의 구성 요소대표적인 구성 요소 3가지를 확인 해보고 그 중 레지스터를 더 자세히 공부하였다.ALU(산술논리연산장치)계산을 담당하는 회로이다. 즉 계산만을 위해 존재.더하기, 빼기(2의보수로 더하기 처리), 곱셈, 오버플로우 검출 등제어 장치명령어를 해석하고 제어 신호를 내보내는 장치물론 다른 장치도 제어 신호를 내보낼 수 있다.레지스터들명령어 처리 전후로 값을 임시 저장하는 장치, 여러개가 존재한다.특수한 목적으로 있는 레지스터도 있다.개발자 입장에서 여기서 가장 중요한 장치는 무엇일까?특별한 직군을 제외하고 레지스터 이외의 장치를 다룰 필요가 없다.그런데 레지스터는 보안, 로우 레벨에서 개발하는 개발자들은 레지스터를 많이 ..
[11660] 구간 합 구하기 5 & [19951] 태상이의 훈련소
·
알고리즘/Prefix Sum
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초256 MB84218385052856343.919%문제N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다.예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자.여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다.표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오.입력첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째..
[Computer Science] [컴퓨터 구조] 데이터
·
Computer Science/Computer Architecture
데이터이진수와 2의 보수컴퓨터는 어떻게 0과 1 즉 이진수로 양수, 음수, 소수, 문자를 표현할 수 있을까?양수는 이진수로, 음수는 2의 보수로 소수는 부동소수점으로 문자는 문자집합과 인코딩으로 이해한다.이진법(이진수)이진법은 0과 1로 모든 수를 표기하는 방법이다.이진수는 0과 1만으로 표현된 수이다.1을 넘어가는 시점에 자리올림을 한다.단점: 숫자가 너무 길어진다!십육진법(십육진수)십육진법: 1~9과 A~F로 모든 수를 표기하는 방법A==10, B==11, C==12, D==13, E==14, F==1515(F)을 넘어가는 시점에 자리올림!십진수말고 십육진수를 사용하는이유는 이진수와 십육진수의 변환이 편한다.2의 보수법0과 1만으로 음수를 표현하는 방법 중 하나어떤 수 n을 그보다 큰 2^n에서 뺀 ..
[코딩테스트] [11659] 구간 합 구하기 4 & [16713] Generic Queries
·
알고리즘/Prefix Sum
[11659] 구간 합 구하기 4누적합 배열이 어떻게 사용되는지 문제를 풀어보며 이해해보자.시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초256 MB138676567894147038.443%문제수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다.출력총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다.제한1 ≤ N ≤ 100,0001 ≤ M ≤ 100,0001 ≤ i ≤ j ≤ N문제풀이이 문제는 수 N개가 주어 졌을 ..
[Computer Science] [컴퓨터구조] 명령어
·
Computer Science/Computer Architecture
CS 공부 시작이번주부터 매주 일주일에 한 번 컴퓨터공학 스터디를 진행하기로 하였다.진행 방식은 컴퓨터 공학에 관련된 강의를 구매하여 각자 정리를 하고 Chapter 한개씩 발표를 하여 본인이 이해한 내용 혹은 이야기 해보고 싶은 주제를 10분 정도 발표를 하여 서로 이야기를 하는 방식이다. 이번주 공부해야할 분량은 컴퓨터 구조 과목에서 명령어, 데이터, CPU(1)이다.CPU는 분량이 많아서 반을 나누어 학습을 하기로 했다.그 중 나는 CPU(1)를 발표하기로 하였기에 CPU에 대한 간단한 자료를 만들려고 한다.컴퓨터 구조에서 제일 첫번째 Chapter인 명령어에 대해서 정리를 하였다.명령어프로그램을 이루는 두 정보에서 명령어는 컴퓨터를 동작시키는 실직적인 정보이고데이터는 명령어의 대상이 된다. 즉 명..
[코딩테스트] [1931] 회의실 배정
·
알고리즘/Sort
[1931] 회의실 배정시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율2 초128 MB237241790935455230.999%문제한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다.입력첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보..
[Flutter] DesignSystem 트러블슈팅
·
Flutter
안녕하세요 오늘은 이전 디자인 시스템 개발 작업에서 적용했던 부분 중에 잘못된 부분이 있어 리팩토링 하였습니다.이 트러블 슈팅을 어떻게 해결하였는지 작성해보겠습니다.이전에는 AppColorsTheme().gfBlackColor를 사용하여 색을 정해주었는데 이 객체가 같은 주소를 참조하는 객체가 아니 다른 주소를 참조하는 객체를 계속 생성하여 사용했던 문제였습니다.객체를 복사하여 사용리팩토링 되기 전 코드에서는 AppColorsTheme()를 사용하여 AppColorsTheme()안에 있는 색을 사용했습니다.HomeView UI와 NoticeView UI가 그려질 때 마다 주소값을 출력해보겠습니다. final appColor = AppColorsTheme(); final appColor2 = A..
[코딩테스트] [18870] 좌표 압축 & [2910] 빈도 정렬
·
알고리즘/Sort
[18870] 좌표 압축시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율2 초512 MB109939467783500739.733%문제수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.입력첫째 줄에 N이 주어진다.둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.출력첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.제한1 ≤ N ≤ 1,000,00010 ≤ X ≤ 10i99처음 문제풀이처음..
[코딩테스트] Comparator & [7785] 회사에 있는 사람 & [1302] 베스트셀러
·
알고리즘/Sort
Comparator저번에 공부하였던 정렬 내용 중 추가적으로 공부할 내용이 있어서 정렬에 대한 부분을 더 적어봅니다.정렬에서 배웠던 Object[] Sort 중 내림차순으로 정렬하는 방법입니다.기본 예시 코드를 봐봅시다!public static void sort(T[] a, Comparator c) { if (c == null) { sort(a); } else { }}위의 코드를 보면 Object[] sort는 Comparator를 추가로 전달할 수 있습니다. 아래 이미지는 Java에 적혀있는 Comparator대한 내용입니다.일부분을 이야기하자면 Comparator는 함수형 인터페이스로 두 개의 문자열을 받아서 그 순서를 비교합니다. o1과 o2를 받았을 때 Return 해주는 값은 o1이 더 적다..
[코딩테스트] 정렬(Sort) & [2751] 수 정렬하기 2 & [1181] 단어정렬 & [10841] 나이순 정렬
·
알고리즘/Sort
정렬정렬이란, 데이터 집합을 적합한 순서로 배치하는 것!아래 이미지를 보면 숫자, 문자열로 오름차순이나 사전순으로 정렬을 한 것을 볼 수 있다.예를 들어서 나이가 어린 사람이 먼저 정렬되고 나이가 같다면 이름이 빠른 사람을 정렬시킨다면 아래 이미지처럼 정렬이 된다정렬을 하기위해서는 필요한 것정렬할 데이터가 필요하다정렬할 순서가 필요하다아래 코드는 ALPS식 투표에서 사용한 내림차순으로 정렬하는 함수이다.sortScroes함수에는 Score[] arr를 정렬하려하고 조건은 if (arr[j].scr /// score 클래스를 내림차순 정렬하는 함수public static void sortScroes(Score[] arr) { for (int i=0; ij; k--) arr[k] = arr[k-1] ..
[코딩테스트] [2840] 행운의 바퀴 & [2817] ALPS식 투표
·
알고리즘/Brute Force
행운의 바퀴시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초128 MB93722424171723.798%문제상덕이는 최근에 행운의 바퀴를 구매했다. 상덕이는 바퀴의 각 칸에 알파벳 대문자를 아래 그림과 같이 적었다.바퀴에 같은 글자는 두 번 이상 등장하지 않는다. 또, 바퀴는 시계방향으로만 돌아간다. 바퀴 옆에는 화살표가 있는데, 이 화살표는 항상 한 곳을 가리키고 있으며, 돌아가는 동안 가리키는 글자는 바뀌게 된다. 위의 그림에서는 H를 가리키고 있다.상덕이는 바퀴를 연속해서 K번 돌릴 것이다. 매번 바퀴를 돌릴 때 마다, 상덕이는 화살표가 가리키는 글자가 변하는 횟수와 어떤 글자에서 회전을 멈추었는지를 종이에 적는다.희원이는 상덕이가 적어놓은 종이를 발견했다. 그 종이를 바탕으로 상덕이가 ..
[Flutter] URL Navigation(with Go_router) 개발 정리
·
Flutter
플러터로 개인 프로젝트를 개발 중에 있는 상황입니다.추후 채팅 작업이 들어갈 화면 이외의 모든 화면의 UI 작업을 완료한 상황입니다.그래서 Navigation을 연결하는 작업을 진행하였습니다!Go_router를 사용하여 URL Router 연결 작업을 정리 하고 한 번 더 학습하기 위해서 글을 작성합니다! 👍기존 UI Design 작업을 진행하면서 간단한 push 방식과 List를 활용하여 Navigation 연결을 진행하였습니다. 하지만 push 방식은 multi platform 지원이 완벽하지 않는 상황이고 다양한 상황에 대처할 수 있고 딥링크에도 URL path형식이 더 알맞다고 생각하여 GoRouter를 사용하였습니다..Push & PopGo 방식을 알아보기전에 기존에 사용했던 Push 와 Po..
[코딩테스트] [10250] ACM호텔 & [1730] 판화
·
알고리즘/Brute Force
[10250] ACM호텔시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초256 MB206413709675986933.316%문제ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다.문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H..
[코딩테스트] [11068] 회문인 수 & [3085] 사탕게임
·
알고리즘/Brute Force
회문인 수시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초256 MB47662414200154.331%문제어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력받았을 때, 이 수가 어떤 B진법 (2 ≤ B ≤ 64)으로 표현하면 회문이 되는 경우가 있는지 알려주는 프로그램을 작성하시오. B진법이란, 한 자리에서 수를 표현할 때 쓸 수 있는 수의 가짓수가 B라는 뜻이다. 예를 들어, 십진법에서 B는 10이다.입력입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T..