ryu_eclipse의 등록된 링크

키자드에 등록된 총 50개의 포스트를 확인하실 수 있습니다.

Naver Blog

리액트네이티브 apk빌드 후 계속 중단됨(keep stopping) 이슈

프로젝트이(가) 계속 중단됨 (keep stopping) 지금껏 이런 에러는 없었다. 이 자식 때문에 내 머리털이 50가닥은 뽑힌 것 같다 개발 환경 React Native 0.72 EXPO cli SDK 49 EAS(Expo Application Services) 테스트 기기 환경 Android 14 이와 같은 현상이 발생하더라도, 여러 원인이 존재할 수 있습니다. Android Studio의 logcat을 통해, 에러 메시지를 뽑아내는 걸 추천드립니다. 이번 트러블슈팅은 문제 해결 과정이 길었던 만큼, 포스트도 깁니다. 침묵의 에러 메세지(하소연) 이번 이슈는 개발 환경에서 아무런 메시지가 없었다. 말 그대로다. Expo go 환경에서조차 멀쩡하게 돌아가던 놈이, apk 빌드 후 실행이 안 됐다. 사람이 극한의 스트레스를 받으면, 손발이 떨린다는 것을 몸소 느꼈다. 에러는 발생하는데, 개발 콘솔에서는 아무런 힌트도 안 준다. "왜 에러 메시지가 안 나지?" 안드로이드 스튜디오 로

Naver Blog

뒤늦은 소프트웨어(SW) 마에스트로 15기 합격 후기

선발 결과가 나온 지는 벌써 3개월이 지났지만.. 이제서야 기록을 남긴다.. 소마(SW마에스트로) 15기 합격 후기 현재(6월)는 본 과정 진행 중에 있다. 소프트웨어 마에스트로 (SW마에스트로 또는 줄여서 소마) 올해는 3100명이 지원해서 경쟁률이 15.5 : 1까지 치솟았다고 한다. 선발인원 조정 + IT 부트 캠프 쏠림 현상이 더해져 나온 경쟁률인 것 같다. (RnD예산 삭감에 영향을 받은건가 싶기도 하다) 소마 지원 동기 소마를 처음 알게 된 것은 고3 때였다. (벌써 6년 전의 일이다.) 그 당시 KOI를 준비하면서, 나동빈님 블로그의 알고리즘 강의글을 봤었는데, 이때 소마의 존재를 알게 되었다. "SW마에스트로 xx기 연수생" 이 한줄이 참 멋져보였다. 하지만, 소마에서 제공하는 혜택들 (월100만 장학금, 기기지원금150만원, 인강지원금 50만원 등등)은 어디에서도 볼수없을정도로 파격적이었다. 언제 소마를 하면 좋을지 고민을 했었고, 올해가 적기라고 판단했다. 병역을

Naver Blog

깃허브 API 호출 제한 오류(rate_limit)

깃허브 API 호출 제한 오류 Github API rate_limit { "message": "API rate limit exceeded for 183.109.XXX.XXX. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)", "documentation_url": "https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting" } 문제의 코드 개발 환경 jdk17 스프링부트3.0 okhttp3 등등... (이번 이슈는 개발 환경과는 딱히 상관없다.) 깃허브 API 깃허브에서 제공하는 API들 중 유저의 event 정보를 제공하는 API가 존재한다. (https://api.github.com) 위 URL에서 대략적인 깃허브 API를 볼 수

Naver Blog

2024 CPC(중앙대 프로그래밍 경진대회) 후기

CPC : 중앙대학교 프로그래밍 경진대회 포스트 작성일 기준 지난 주 토요일(8/31)에 교내 프로그래밍 대회를 다녀왔다. ChAOS(중앙대 알고리즘 학회)에서 기획하고 추진하는 CPC(중앙대 프로그래밍 경진대회)이다. 대회 현장 분위기를 오랜만에 느껴봐서인지, 더더욱 재밌게 즐길 수 있었다. 문제 풀이 A1. 울타리 공사 단순 구현, 기하 https://www.acmicpc.net/problem/32171 겹칠 수 있는 여러 사각형들을 놓았을 때, 모든 사각형들을 포함하는 직사각형 울타리를 설치하는 문제 울타리의 왼쪽 아래 x, y좌표는 사각형들 중 가장 작은 x, y좌표를 각각 찾아 대입하면 된다. 오른쪽 위 x, y좌표도 마찬가지로 가장 큰 x, y좌표를 각각 찾아 대입하면 된다. #include <iostream> #include <algorithm> #define INF 1e9; using namespace std; int n; int xl,yl, xr,yr; int mai

Naver Blog

[Error] 'stoi' was not declared in this scope

string을 정수로 변환해 주는 함수 stoi()는 C++ 11 이상부터 포함되어 있기 때문에, 이전 버전 컴파일러에서는 오류를 뱉어낸다. 내 dev가 11이전 구 버전일 줄은 몰랐는데.. stoi() 대신에 cstdlib 헤더를 추가한 후 atoi() 함수를 사용하면 해결 #include <cstdlib> atoi(name.c_str()); ※ 단, atoi(char*) 형식이므로, string 변수는 c_str()메소드를 통해 char*형으로 변환시켜주어야 한다. 2번째 방법 도구 -> 컴파일러 설정 "-std=c++11" 입력 후 확인 DEV도 역시 하나의 에디터에 불과하므로, 최신 컴파일러를 포함시키기만 하면 C++11의 기능들을 사용할 수 있다. stoi()는 물론이고, auto도 가능

Naver Blog

노트북 옆에 버즈를 두면 화면이 꺼지는 현상

https://blog.naver.com/dsyun96/223092795854 예상치 못한 인과관계에 대한 괴담 최근 이런 류의 이야기가 갑자기 많이 보여서 기존 유명한 이야기랑 모아보았읍니다. 500마일 떨어진 곳에 ... blog.naver.com 이 글을 보고 문득 떠오른 최근 경험담 노트북 주변에 버즈를 놓아두면 지멋대로 꺼지는 경우가 있다. 비교적 최근의 일이었다. 노트북 작업(유튜브 시청) 도중 버즈를 실수로 노트북 위에 떨어트렸는데, 바로 화면이 꺼지면서 노트북 전원이 나갔다. 다행히, 다시 켜보니 모든 파일은 저장된 채 멀쩡하게 그대로 남아 있었다. (환경 : 삼성Always9노트북 / 갤럭시 버즈+) 데스크탑 본체에 물건 떨어트리면 종종 꺼지는 일이 발생했었으니... 이번에도 그런 물리적 충격으로 인해 화면이 꺼졌던 게 아니었을까..라는 생각으로 여러 번 더 떨궈봤다. 수십 번의 시행착오를 통해 알게 된 사실은 아무 데나 떨어트려서는 화면은 꺼지지 않는다 였고, 유독

Naver Blog

[비재귀 구현] 백준 2448::별 찍기-11

100만 년 만에 올리는 백준 문제 풀이.. 꾸준히 글 쓰는 습관을 잡고자, 가장 익숙하게 했던 백준 문제풀이를 재개하고자 한다.. 알고리즘 분류는 재귀라고 되어있지만, 나는 비재귀 반복문으로 해결했다. 다른 사람 코드를 찾아보니, 대부분이 재귀로 해결한듯하다. https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 2448번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 별 찍기 - 11 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 35838 15754 11269 41.942% 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N이 주어진다. N은 항상 3×2 k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 예제 입력 1 복사 24 예제 출력 1 복사 * ... www.acmicp

Naver Blog

[백준 아레나] SUAPC 2024 WINTER open contest

600솔브 자축 정신 차려보니 600솔브를 넘겼다. 짝짝 군 전역 후 지난 1년 동안 꾸준히 알고리즘 재활치료하면서, PS 감을 다시 되찾고 있다. 첫 아레나 백준 아레나가 핫하다는 얘기를 듣고, SUAPC 2024 WINTER 오픈콘테스트에 참여했다. 총 13문제가 출제되었고, 나는 A, C, H, L, M 5문제를 해결했다. G번 AND, OR, XOR2 문제를 2시간 동안 삽질하다가 못 풀고 끝냈는데, 정해를 보니 시간이 더 있었어도 못 풀었을 것 같다... https://www.acmicpc.net/problem/31416 31416번: 가상 검증 기술 문제 현대오토에버의 가상 검증 기술은 차량·시스템·제어기를 가상화하고 가상 주행 환경, 검증 도구 등을 제공해 기능별 검증, 기능 간 연계 검증, 시스템 단위 검증을 하드웨어 없이 가상으로 진행할 수 있도록 하는 기술이다. 가상 검증은 조기 검증을 통한 품질 확보와 실제 검증이 불가한 악조건 검증 시뮬레이션을 가능하게 한다.

Naver Blog

Expo : Entity not authorized: AccountEntity

개발 환경 React Native 0.72 EXPO cli SDK 49 [GraphQL] Entity not authorized: AccountEntity~~ 에러 리액트네이티브 Expo cli 원인 리액트네이티브 프로젝트 접근 권한이 없음. eas를 통해 빌드를 할 때, 해당 프로젝트를 소유하지 않아 생기는 오류 다른 팀원 eas계정에 등록된 projectID기준으로 설정되었기 때문 해결법 App.json파일에서 "extra": { "eas": { "projectId": "프로젝트ID" } } 부분을 삭제 후 expo go 실행 혹은, 본인 eas 계정에 맞는 projectID로 설정해둔 뒤 빌드 해도 무방 유독, 안드로이드 os에서 많이 발생되는 에러라고 한다. 나 같은 경우에는, eas에 설정된 projectID 불일치가 원인이었으나, 다양한 원인으로 발생할 수 있는 에러다. 협업 작업 코드를 eas 빌드 할 때에는, 반드시 하나의 계정으로만 하자

Naver Blog

WARN : Require cycle: Require cycles are allowed, but can result in uninitialized values [무한 사이클 이슈]

WARN : Require cycle: A.tsx -> B.tsx -> A.tsx Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle. 무한 참조 사이클 개발 환경 React Native 0.72 EXPO cli SDK 49 원인 https://www.developerway.com/posts/react-project-structure - 하향식 설계 구조 A.tsx와 B.tsx에서 서로를 import 하는 구조 리액트는 "하향식 전달"방식으로 설계해야 한다. 서로를 import 하면 무한 순환 호출이 되기 때문! 해결법 단방향으로만 import 할 수 있도록 다시 설계한다. A.tsx에서만 B.tsx를 import 하고, B.tsx에서의 A.tsx를 import하던 것을 제거한다. A.tsx에서 B.tsx의 변숫값 등의 데

Naver Blog

힙정렬(HeapSort)

백만 년 만에 쓰는 포스팅 의무의 시간이 점점 다가온다... 이상하거나 모르는 게 있다면, 댓글로 질문좀 해주세요... ## 2021년 3월 18일 최종 수정 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ https://youtu.be/_bkow6IykGM 드디어 힙정렬이다. 우리는 앞서 삽입 정렬(InsertionSort)와 병합 정렬(MergeSort)를 공부했다. 시간 복잡도가 좋지 못한 삽입 정렬, 추가적인 메모리가 필요한 병합 정렬 힙정렬을 통해 이 두 문제점을 해결할 수 있다. 삽입 정렬 병합 정렬 힙정렬 worst case의 시간 복잡도 O(n^2) O(nlgn) O(nlgn) in-place sort YES! NO YES!!! 힙(Heap) 자료구조 우선 힙이라는 자료구조에 대해 공부할 필요가 있다. Heap은 '아무렇게나 쌓여 있는 더미'라는 뜻인데, 딱히 관련있어보이진 않는다.. (참고로 컴퓨터 구조에서 배울 힙메모리영역과는 다른 내용이다. 우리가 알고 있는 HIP과도 무관하다..

Naver Blog

우선순위 큐(Priority Queue)

2021년 3월 27일 최종 수정 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 힙을 공부했으면, 같이 알아두고 가야 할 개념이 우선순위 큐(Priority Queue)이다. 보통 줄여서 PQ라고 부른다. https://blog.naver.com/ryu_eclipse/222282083017 힙정렬(HeapSort) 백만 년 만에 쓰는 포스팅의무의 시간이 점점 다가온다...이상하거나 모르는 게 있다면, 댓글로 질문... blog.naver.com 힙에 대해 잘 모른다면, 먼저 저 포스팅부터 읽고 오자. 여기서 상당수가 오해하는 부분이 있는데, 우선순위큐가 반드시 힙인 것은 아니다. '우선순위큐'는 추상 자료형(Abstract Data Type)이고, 단순히 ~기능을 한다. ~함수를 갖는다. 라는 개념만 존재할 뿐이다. 그리고 그 기능들을 구현하는 데에 아주 적합한 자료구조가 "힙"인것이다. 이는 큐, 스택을 배열 또는 연결 리스트로 구현하는 것과 같은 뉘앙스이다. ## 참고로 추상자료구조의 존재

Naver Blog

[분할 정복] 빠른 거듭제곱 알고리즘

BOJ 1629 : 곱셈 https://www.acmicpc.net/problem/1629 1629번: 곱셈 1629번 제출 맞은 사람 숏코딩 재채점 결과 디버그 채점 현황 강의 곱셈 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 0.5 초 (추가 시간 없음) 128 MB 37835 9690 7134 25.340% 문제 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. 출력 첫째 줄에 A를 B번 곱한 ... www.acmicpc.net BOJ 1629 : 곱셈 딱 봐도, 숫자가 크다. 2^200000000의 값을 구하려면, 2를 20억 번 곱해야 하는데 딱 봐도 시간 초과다. - O(n)는 어림도 없다 분할 정복을 이용한 빠른 거듭제곱을 통해 구

Naver Blog

행렬의 빠른 거듭제곱

BOJ 10830 : 행렬 제곱 https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 10830번 제출 맞은 사람 숏코딩 재채점 결과 채점 현황 강의 행렬 제곱 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 10393 3563 2872 34.085% 문제 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. 입력 첫째 줄에 행렬의 크기 N과 B가 주어진다. (2 ≤ N ≤ 5, 1 ≤ B ≤ 100,000,000,000) 둘째 줄부터 N개의 줄에 행렬의 각 원... www.acmicpc.net BOJ 10830 : 행렬 곱셈 지수 B의 범위를 보면 알겠지만, 지난 포스팅과 마찬가지로 빠른 거듭제곱 알고리즘을 통해 해결해야 한다. 다른 점이라고는 행렬 곱셈이라는 점과..얼탱이없는 입력 케이스

Naver Blog

[분할 정복] 백준 2749::피보나치 3

피보나치수열은 컴공학도라면 모를 수가 없는 유명한 수열이다. 코드 짜는 것도 매우 간단하다. #include <iostream> int n,fibo[25]={0,1,1}; int main(){ cin>>n; for(int i=2;i<=n;i++) fibo[i]=fibo[i-1]+fibo[i-2]; cout<<fino[n]; return 0; } 바텀업(Bottom-Up) 방식 시간 복잡도 = O(n) 공간 복잡도 = O(n) +) 슬라이딩 윈도 기법으로, 공간 복잡도를 O(1)로 바꿀 수 있지만, 자세한 건 생략한다. BOJ - 2749::피보나치 수 3 https://www.acmicpc.net/problem/2749 2749번: 피보나치 수 3 2749번 제출 맞은 사람 숏코딩 재채점 결과 디버그 채점 현황 강의 피보나치 수 3 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 17546 5675 4593 38.272% 문제 피보나치 수는 0과 1로

Naver Blog

5월

From, 블로그씨 내일이면 설렘 가득한 5월이 시작되네요! 활기 돋는 5월 시작의 계획을 세워볼까요? ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 5월3일 - 군입대.

Naver Blog

[분할 정복] 백준 2086::피보나치 수의 합

거의 5개월 전 훈련소 들어가기 전에 풀었던 문제지만, 이제서야 기록을 남긴다.. https://www.acmicpc.net/problem/2086 2086번: 피보나치 수의 합 2086번 제출 맞은 사람 숏코딩 재채점 결과 채점 현황 강의 피보나치 수의 합 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 2064 596 475 34.197% 문제 제 1항과 제 2항을 1이라 하고, 제 3항부터는 앞의 두 항의 합을 취하는 수열을 피보나치(fibonacci) 수열이라고 한다. 예를 들어 제 3항은 2이며, 제 4항은 3이다. 피보나치 수열의 a번째 항부터 b번째 항까지의 합을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으므로 마지막 아홉 자리만을 구하도록 한다. 즉 1,0... www.acmicpc.net 피보나치 시리즈 중에서는 꽤 어려운 편에 속하는 문제이다. 티어는 골드 1 다만, 이전에 풀었던 피보나치 3 문제를 활용하여 금방 풀었던 기억이

Naver Blog

분할정복 - 병합 정렬(merge sort)

재귀(recursive) 알고리즘에 대해 자주 접하게 될 것인데, 재귀 알고리즘은 주로 반복적(Iterative) 알고리즘과 비교되는 개념이다. (그렇다고 반대되는 개념이란 것은 아니다!) 이번에 소개할 분할 정복 알고리즘은 재귀 알고리즘에 해당된다. C언어 공부를 해보았다면, 재귀 함수는 '자기 자신을 계속 호출하는 함수'라는 것은 잘 알고 있을 것이다. https://www.acmicpc.net/problem/17478 -재귀 함수가 뭔가요? 정신나갈것같애!!정신나갈것같애!!정신나갈것같애!! 그런 재귀함수중에서도 각각 구간을 쪼개서 자기 자신을 호출하는 놈들이 있다. 그게 바로 분할 정복이다. 분할 정복(Divide & Conquer) 어떤 문제를 해결하는 알고리즘에서 원래 문제를 성질이 똑같은 여러 개의 부분 문제로 나누어 해결하여 원래 문제의 해를 구하는 방식 이름에서 바로 눈치챌 수 있는데, 해결해야 할 문제를 작고 쉬운 문제들로 분할(divide) 시키고 정복(conque

Naver Blog

아두이노 - 전자피아노 키트

학교에서 아두이노 키트를 무료로 준다길래 신청하고 받았다. 1월 12일에 집으로 배송되고, 1월 18일에 만들었지만.. 이제서야 기록하기 아두이노 전자피아노 키트 언박싱 준비 중 강사님이 친절하게 webex로 수업하셨다 언박싱 친구가 준 '*'벅스 무드 등 && 버즈 한쪽 오랜만에 빵판(bread board) 본다. 3d 모델링 원래라면 직접 3d 프린터를 써서 제작한다고 했으나, 코로나 시국으로 인해 모델링 연습까지만 하고 아두이노로 넘어갔다. 3D 프린팅 과목 듣던 애들 이렇게 재밌는 걸 했을 줄이야.. 아 편안해.. 회로 연결 선생님 말씀에 따라 잘 따라 했다 조립 아무튼 완성함 mLink를 통해 블록 코딩하는 중 12년 만에 하는 블록 코딩이다... 웅장해진다.. 초등학생 때 로보로보수업에서 로봇 만들고 블록 코딩했던 기억이 어렴풋이 난다. 강사님 판단에는 아무래도 비전공자가 많고 따라가기 벅찰까 봐, 블록 코딩으로 수업하신 것 같다.

Naver Blog

독서 목록

앞으로 2년간 자유(박탈)시간를 갖게 된 것에 감사하며.. 지금까지 방치해뒀던 독서와 영어에 집중하기로 다짐함 1월 6일 ~ 1월24일 : 카산드라의 거울1(베르나르 베르베르) 1월25일 ~ 2월 1일 : 카산드라의 거울2 ##휴학신청으로 인해 더 이상 학교서 대출 불가 2월 9일 ~ 2월11일 : 아몬드(손원평) - 동네 친구가 빌려줌 2월12일 ~ 2월15일 : 나미야 잡화점의 기적(히가시노 게이고) - 동네 친구가 빌려줌 2월17일 ~ 2월23일 : 라플라스의 마녀(히가시노 게이고) - 서울 친구가 기부함 라플라스..........변환.. 2월22일 ~3월4일 : 돌이킬 수 없는 약속(야쿠마루 가쿠) - 교보문고 갔다가 충동구매 3월12일~3월22일 : 마력의 태동(히가시노 게이고) - 바로 질러버려따(+곰인지 원숭인지 독특한 볼펜도 받음) 친구의 추천으로 알게된 책 라플라스마녀에서 등장했던 마도카가 이번에도 등장한다. 시점은 라플라스마녀의 1년전

Naver Blog

scpc2차 참교육..

1.실력맞추기 DP공부를 열심히 했어야했다. 뻘짓만 하다 0점 2. 고구마 유일하게 AC받은 문제 아 ㅋㅋ 내 풀이는 이러한데. 먼저 부분합을 전부 구해 준 후, ( 0<= i < j <=n) psum[j]에 대하여, psum[j] - psum[i] < M을 만족하는 값중 최댓값 찾기 즉, 인덱스 j보다 앞에 있는 값중 psum[j]-M <= psum[i]을 만족하는 psum[i]중 가장 작은 값을 찾으면 되는 2중 for문으로하면 너무 느리기때문에, 머지소트트리 사용하여 값을 찾아줌. 정해는 따로 있어서 그런지 수행시간이 긴편 3. 아르바이트 에라이

Naver Blog

ubuntu vim에서 .vimrc설치하기

리눅스 ubuntu vim 기본 vim은 들여쓰기, 넘버라인 등등 다 불편한 부분이 있는데 .vimrc파일을 설치함으로써 보완할 수 있다. 먼저, 우분투에 gcc와 vim은 기본적으로 설치해 준다. (아래에서 쓰일 git도 미리 설치해 주면 좋다) gcc : 리눅스에 속해있는 컴파일러 //명령어 sudo apt-get install gcc vim : vi 에디터를 개량한 버전, //명령어 sudo apt-get install vim 여기에 .vimrc을 설치하면, vim 에디터를 더욱더 간지나고 편하게 사용할 수 있다. 만약. vimrc가 없다면 어떻게 보일까 들여쓰기 칸 수도 이상하고 (스페이스 4~5칸이 국룰) 넘버라인도 안 떠서 어색하게 느껴진다. set hlsearch " 검색어 하이라이팅 set nu " 줄번호 set autoindent " 자동 들여쓰기 set scrolloff=2 set wildmode=longest,list set ts=4 "tag select set

Naver Blog

[2020 마이블로그 리포트] 한 눈에 보는 올해 내 블로그 데이터!

지금부터라도 열심히 해야지.. 2020 마이 블로그 리포트 올해 내 블로그 대표 키워드 확인하고 네이버페이 받아가세요! campaign.naver.com

Naver Blog

[c/c++] 난수 생성 - rand(),srand(), time()

프로그래밍을 하다 보면 종종 랜덤 값이 필요할 때가 생깁니다. 단순히 로또 시뮬레이션을 구현할 때도 쓰이고, 균형 잡힌 이진 탐색 트리 중 하나인 트립(Treap)을 구현하는 데에도 랜덤 값을 이용하기도 합니다. #include <stdlib.h> //rand()와 srand() #define RAND_MAX 32767 int rand(void); // 반환값:0~RAND_MAX rand() 함수 return 값의 범위는 [0, RAND_MAX]이라고 합니다. RAND_MAX=32767로 설정되어 있습니다. 만약 이보다 더 큰 숫자를 뽑아내고 싶다면, rand() * rand() 이렇게 제곱해도 되고 rand() << 15 | rand() 이렇게 비트연산을 이용해도 됩니다. 하지만, 이러면 난수의 편향성이 존재하므로 마냥 좋은 방법이라고 하긴 힘듭니다. 그럼 rand() 함수를 써서 10개의 정수를 출력해봅시다. rand()만 사용할 경우 41 18467 6334 26500 1916

Naver Blog

자료구조, 알고리즘 강의 계획

거의 모든 컴퓨터공학과에서 필수로 가르치며, 가장 중요하게 여겨지는 두 과목이다. 선수 지식으로 C/C++ 언어와 수학(이산수학, 미적분)이 요구된다. 우리 학교 같은 경우 2학년 1학기 때 자료구조, 2학년 2학기 때 알고리즘을 수강하게 되는데 1학년 때 배우던 기초 프로그래밍과 비교하면 난이도 차이가 큰 편이라 그런지 어려움을 겪는 학생들이 많아 보였다. 이 학생들을 주 타깃으로 삼고, 학교 수업 커리큘럼을 위주로 포스팅하고자 한다. 구현 연습도 할 겸 STL 없이 C++ 언어로 구현할 것이며, 참고용으로 STL도 하단에 적을 생각이다. CLRS(좌), 종만북(우) 주요 참고 교재 1. Introduction To Algorithm(저자 4명의 이름 앞글자를 따서 CLRS로 줄여 부름 ) 2. 알고리즘 문제해결 전략세트 (저자 구종만의 이름을 따서 종만북이라 부름) 자료구조(Data Structure) : 데이터를 효율적으로 관리하고 구조화하기 위해 만들어낸 컨테이너 · 이미 배

Naver Blog

시간 복잡도, 점근 표기법(빅오표기법)

자료구조, 알고리즘에서 먼저 익히게 될 개념이 시간 복잡도 일 것이다. 시간 복잡도(Time Complexity)란? 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간 알고리즘의 주요 연산의 횟수를 측정 입력의 크기 n의 함수로 나타냄 예) T(n)= n^2+n 좋은 프로그램인지를 판단하려면 어느 정도 객관적인 지표가 필요하다. 실행 시간으로 판단을 하기엔 {컴파일러, OS, 하드웨어} 등등 결과에 영향을 끼치는 요소가 넘나 많았다. 이때 쓰이는 것 중 하나가 시간 복잡도(Time Complexity)란 것이다. ※시간 복잡도와 비슷한 개념인 공간 복잡도(Space Complexity)가 존재한다. 프로그램이 메모리의 공간을 얼마나 차지하는지를 나타낸다. 버블 정렬(Bubble Sort)를 통해 과정을 알아보자 내부 for 문에 있는 명령어(if 문)는 만큼 실행된다. if문의 실행 시간을 c1 * n(n-1)/2 교환(exchange)명령의 실행 시간을 c2 * n(n-1)/2 로

Naver Blog

버블정렬(Bubble Sort) 개선 코드

https://en.wikipedia.org/wiki/Bubble_sort 보통 c언어 책에서 소개되는 기본적인 버블정렬의 시간복잡도는 O(n^2)이다. best, worst, average 모두 O(n^2)으로 표현되지만, 정렬 상태를 체크하는 flag를 넣어줌으로써 best의 경우 O(n)으로 개선시킬 수 있다. 버블 정렬 best case가 O(n)인 이유: 교수님의 알쓸신잡 지식 void bubble_sort(int list[], int n) { int flag = 1; for (int i = n-1; flag > 0; i--) { flag = 0; for (int j = 0; j < i; j++) if (list[j] > list[j + 1] { swap(&list[j], &list[j + 1]); flag = 1; } } } 이미 정렬이 된 상태라면, 외부for문 1바퀴 돌고만 돌고 끝나게 된다. 성능 차이 비교 기존 코드 vs 개선된 코드 내부 반복문이 얼마나 반복되는지

Naver Blog

삽입 정렬(Insertion Sort)

::2021년 1월 24일 최종 수정 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 정렬 중에서 상당히 쉬운 편에 속하면서도, 의외로 퍼포먼스가 좋다. 삽입 정렬(insertion sort)은 최악(worst), 평균(average)의 경우 O(n^2)에 따르지만 최선(best)의 경우 O(n)에 따른다. 와우(wow~~) 또한, 배열의 길이가 짧을수록 삽입 정렬의 성능이 상대적으로 좋다. 이 장점을 활용하여, 여러 하이브리드 정렬을 만들어낼 수 있다. 내 기준으로 2학년 1학기 자료구조 과제로 퀵 정렬+삽입 정렬 c언어 구현을 내주셨다. - 퀵정렬과정 중 정렬해야 할 부분 배열의 길이가 n 이하일 때는 삽입 정렬을 사용하면 됐다. https://youtu.be/8oJS1BMKE64 삽입 정렬(Insertion Sort)의 과정을 알아보자 삽입 정렬 과정 삽입 정렬은 첫 번째 원소부터 차례로 각자 적절한 위치를 찾아 이동시킨다. 이때 적절한 위치란 부분적으로 정렬 상태를 만족한다는 것을 의미한다

Naver Blog

2020프로그래밍 대회 일정

예년과 달리, 올해는 코로나19의 여파로 각종 대회 일정을 파악하기 어렵다. 몇몇 대회는 개최일이 연기되었고, 그 외에도 일부는 아예 개최되지 않을 수도 있는 점을 고려 바람 프로그래밍 대회라 함은 일반적으로 C/C++, JAVA들의 언어를 이용하여 알고리즘 문제를 해결하는 대회이다. 대회마다 성향이 조금씩 다르긴 하나, 알고리즘을 주로 다룬다. SCPC 개최 SCPC(삼성전자 대학생 프로그래밍 경진대회) 참가 접수: 7/14(화) – 8/18(화) 1차 예선: 8/21(금) 09:00 – 8/22(토) 09:00 2차 예선: 9/5(토) 09:00 – 21:00 본선대회: 9월 말 주말 예정 올해로 6번째 개최되는 SCPC. 알고리즘 붐을 일으킨 주범(?)이다. 참가자들 중 상위권 - 약 40명 정도 - 에게는 상금이 주어지며, 나중에 취직할 때도 큰 스펙이 된다고 한다. 예선은 온라인 예선이고, 본선은 삼성전자 R&D캠퍼스에서 온 사이트 형식으로 진행되었지만.. 올해는 본선대회도

Naver Blog

플레이(play) 게임 키드들이 모여 글로벌 기업을 만들기까지 넥슨 사람들 이야기 - 김재훈, 신기주

플레이(play) 게임 키드들이 모여 글로벌 기업을 만들기까지 넥슨 사람들 이야기 김재훈, 신기주 | 민음사, 2015 게임을 즐겨 하고 특히 넥슨 게임을 오래전부터 접해왔던 사람이라면, 반드시 읽어보는 것을 추천한다. 창조경제는 똑똑한 인재들에게 자유롭게 생각하고 놀 시간만 쥐여주면 자연히 이뤄진다. 경쟁은 혁신의 동기일 뿐이다. 협업이야말로 혁신의 유일한 방법이다. "놀러 와" - 김정주 (넥슨 창업주) 플레이 中 넥슨 스타트업 시절부터 책이 발간된 2015년까지의 역사를 잘 정리해놓았다. 어느 기업에 대한 책이라면, 기업의 설립자를 신격화하는 내용이 대부분일 거라 생각했었다. 그러나, 이 책에선 김정주 대표에 대한 신격화 대신 넥슨이 성장하는 모습을 담아낸 점이 의외였다. 책의 저자는 '성장통'이라는 표현을 사용하여, 점점 커져가는 기업 내부에 미처 신경 쓰지 못했던 상처들 또한 잘 녹여냈다. 김정주와 친구 사이였던 송재경은 둠바스(DOOMVAS)라는 게임을 만들었다. - 둠바

Naver Blog

최소 스패닝트리(MST) 5문제

7월 1일(수) 자로 1학기 종강하였고, 곧바로 도서관 알바를 하였다.(일, 월만 쉬고 매일 간다) 며칠간 엄청 바빠서, 알고리즘 문제 하나도 못 풀다가 드디어 풀었다. - 도서관 재오픈 준비 중이라 한창 바쁠 때다. 단계별 풀어보기-최소스패닝트리 set골랐다. https://www.acmicpc.net/problem/1197 1197:최소 스패닝 트리 1197번: 최소 스패닝 트리 1197번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 최소 스패닝 트리 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 22612 9447 5128 38.658% 문제 그래프가 주어졌을 때, 그 그래프의 최소 스패닝 트리를 구하는 프로그램을 작성하시오. 최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리를 말한다. 입력 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤

Naver Blog

N과 M 시리즈 12문제 (dfs 백트래킹)

실버 문제 set이라고 무시했던 set인데, 미리 좀 해뒀으면 좋았을걸 싶다. 자료구조시간 때 과제로 Backtracking을 이용한 Maze 탈출 문제가 주어졌었는데, 미리 알았다면 쉽게 풀었을 것 같다. n과 m 시리즈는 1 : 순열 2 : 조합 3 : 중복순열 4 : 중복조합 이런 식으로 반복되고 1~4 : 정수 1~n까지 숫자들 중 5~8 : 입력받는 정수 n 개 중 9~12 : 입력받는 정수 n 개 중 (단, 수열이 중복되는 경우는 제외) 이런 식으로 점점 조건이 까다로워진다. 순열에 해당하는 1,5,9번만 풀이하도록 하겠다. 조합,중복순열,중복조합도 개념만 알고 있다면, 구현하는 건 어렵지 않을 것이다. https://www.acmicpc.net/problem/15649 15649:N과 M(1) 15649번: N과 M (1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복

Naver Blog

코드 포스

20.7.12일자 코드 포스 https://codeforces.com/contest/1380 Educational Codeforces Round 91 ( Div. 2) 오랜만에 코드 포스 들어가서 한 건데.. 시작할 때 서버가 터져버리는 바람에 unrated가 되어버렸다. 비록 3솔이지만, 이번 달 내에 5솔까지 찍어보는 게 목표다. A - Three Indices 길이 n의 순열이 주어진다. 예를 들면, arr[5] = {1,3,2,4,5} 이 배열 중 3개의 원소를 골라, 를 성립하는 i, j, k를 찾으면 된다. (단, i < j < k) n의 범위가 n<1000이므로, 단순하게 3중 for 문 돌리면 TLE 발생하게 되므로 다른 방법을 사용한다. Pj를 먼저 결정해 주고, index = j를 기준으로 좌우로 뻗어나가 Pj보다 작은 값들을 각각 찾으면 된다. - 투포인터를 이용하면 된다. 이로써 O(n^2)에 해결 가능하다. B - Universal Solution 로봇의 명령

Naver Blog

네트워크 유량 어렵다..

코드 짜는 건 할만한데 네트워크 모델링이 너무 어렵다.. 이번주 동안 푼 것들 위상정렬, 세그먼트트리, 네트워크유량 클래스5 찍었고, 플레티넘까지도 얼마 남지 않았다.

Naver Blog

solved.ac 플래티넘

확실히 플래티넘 공기가 맑은 것 같다 경험치30퍼쯤 남았을때, 최소공통조상과 이분매칭 문제들 달렸다. 한달동안 150문제 푸는게 목표였지만, 70여 문제를 풀고 한달이 지났다.

Naver Blog

백준 2110 공유기설치(이분 탐색), 8986 전봇대(삼분 탐색)

400솔브 자축 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 2110번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 공유기 설치 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 11100 4964 3736 46.776% 문제 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x 1 , ..., x N 이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접... www.acmicpc.net 실버 2에 해당하는 파라메트릭서치 문제(이분 탐색) 파라메트릭서치(Parametric Search) : 최적화 문제를 결정 문제로 바꾸어 해결하는 방법 (이분 탐색 응용) 최적화 문제 : 최선의 답을 찾는 문제 ex

Naver Blog

[DP] 백준 11722::가장 긴 감소하는 부분 수열

https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 11722번 제출 맞은 사람 숏코딩 풀이 풀이 작성 재채점/수정 채점 현황 강의 가장 긴 감소하는 부분 수열 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 10698 6745 5523 64.756% 문제 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30 , 10, 20 , 20, 10 } 이고, 길이는 3이다. 입력 첫째 줄에 수열 A의... www.acmicpc.net LIS 시리즈 N<1000으로 주어지는 값이 매우 작다. O(NlgN)으로도 풀리지만, 2중for문을 이용하여 O(N^2)으로 풀어보자 DP[i] = A[]배열 중 A[i]원소로 끝나는 '감소하는 부분수열'. 길이

Naver Blog

[플로이드-워셜] 백준 1956::운동

https://www.acmicpc.net/problem/1956 1956번: 운동 1956번 제출 맞은 사람 숏코딩 풀이 풀이 작성 재채점/수정 채점 현황 강의 운동 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 192 MB 3722 1828 1393 47.640% 문제 V개의 마을와 E개의 도로로 구성되어 있는 도시가 있다. 도로는 마을과 마을 사이에 놓여 있으며, 일방 통행 도로이다. 마을에는 편의상 1번부터 V번까지 번호가 매겨져 있다고 하자. 당신은 도로를 따라 운동을 하기 위한 경로를 찾으려고 한다. 운동을 한 후에는 다시 시작점으로 돌아오는 것이 좋기 때문에, 우리는 사이클을 찾기를 원... www.acmicpc.net 입력값이 'V<400'으로 매우 작게 주어진다. O(N^3)의 복잡도로 풀어볼 수 있는데, 잘 알려진 "플로이드 와샬 알고리즘"을 이용해 풀어본다. //플로이드 핵심 코드 for(int k=1;k<=v;k++){ for(int i=1;i<

Naver Blog

오래만에 코드포스

https://codeforces.com/contest/1333 Dashboard - Codeforces Round #632 (Div. 2) - Codeforces codeforces.com 오랜만에 코포 해봤는데, div2 인데도 겨우 2문제밖에 못풀었다. A - Little Artem 인접한 White cell이 존재하는 Black cell의 개수를 B개 인접한 Black cell이 존재하는 White cell의 개수를 W개 라고 할때, B = W+1을 성립하는 그리드를 완성 하는 문제. 단순 구현이다. n*m칸의 행렬이 있을때, 적당히 n-1번째 줄까지 채우고 마지막 줄만 생각하면 되지 않을까 싶었다. BWBW BWBW BWBW B BW B 이런식으로 처리 했고, 나머지 예외 생기는 점은 무식하게 노가다로 구현했다. +) 정해 WBBBB BBBBB BBBBB 이런 식으로 하면 W=1개 임이 자명하고, W를 인접하는 B는 2개이므로 항상 B=W+1를 만족한다. arr[0][0]=

Naver Blog

생일 선물 준비하기

4월17일 기준. 18일에 생일인 친구에게 자그마한 선물을 준비해보았다. 아침부터 교수님 강의 영상 촬영 보조 갔다 오고, 점심부터는 화상강의 듣고 저녁부터 밀린 과제하다가 결국 자정 넘어서 밤새 선물을 만들게 되었다. 콘셉트(concept) 결정 https://blog.naver.com/ryu_eclipse/221176549089 암호해독 대체 이게 뭔가 싶었는데 아이디와 비밀번호 알아내면 되는거구나 싶음 근데 코드를 잘보면 막장인 숫자들... blog.naver.com 예전에, 암호해독 미션을 한 적이 있는데, 여기서 미션을 클리어하면 선물이 나오도록 하면 어떨까.라는 생각에서 시작 구상하기 암호해독 때와 마찬가지로, 상대방에게는 html 파일만 건네주기. 상대방은 소스코드만 보고, ID와 PW를 알아내야 함! 어찌하여 ID, PW를 알아내고 로그인을 성공하면 선물 등장 당연히 소스코드 일부분은 난독화 처리하여, 읽기 힘들게 할 예정 기초 디자인 디자인은 아주 심플하게 별거 없는

Naver Blog

근황

종만북-세그먼트 트리 3회독만에 이해하고, 첫 플레티넘 문제 솔브 백준 283문제 solve했고, solved티어도 골드2 달성했다. 빨리 백준_solved 통합 했으면 좋겠다 https://blog.naver.com/kks227/220791986409 세그먼트 트리(Segment Tree) (수정: 2019-02-12) 아마 트리 파트에서 마지막이 될 글입니다. 상당히 재미있는 자료구조입니다.그 이름하여 세그먼트 트리(se... blog.naver.com 참고했던 블로그

Naver Blog

코드포스 div4

https://codeforces.com/contest/1352 Dashboard - Codeforces Round #640 (Div. 4) - Codeforces codeforces.com 코드포스 최초의 DIV.4이다. div4 에서는 나같은 애들도 세계관 최강자가 될 수 있다는 믿음을 갖고 참여했다. 현실은 E풀다가 콘테스트 종료 A - Sum of Round Numbers 정수n을 round한 정수로 쪼개주는 문제. (round num : 첫자리를 제외한 나머지 자리는 0인 정수) 일의 자리부터 출력해주는 것이 제일 간단하다. ex) 9806 = 6 + 7*10 + 8*100 + (0*10) + 6 0일때는 생략해줌 B - Same Parity Summands 를 성립하는 a들을 출력하면 되는 문제. 이 때, a들은 전부 홀수거나 전부 짝수 1+1+1+...나머지 숫자 2+2+2+..나머지 숫자 이런식으로 해주면 되는데, 짧게 할 방법이 떠오르질않아 모든 경우를 나누어서 처리

Naver Blog

[이분탐색] 백준 15976::XCorr

https://www.acmicpc.net/problem/15976 15976번: XCorr 문제 길이가 동일한 수열 X = ( x 0 , x 1 , ⋯ , x n − 1 ) 와 Y = ( y 0 , y 1 , ⋯ , y n − 1 ) 가 있다. 이 두 수열의 각 원소는 음이 아닌 정수이다. 다음은 n = 5 인 경우의 한 예이다. X = ( 1 , 0 , 0 , 0 , 1 ) Y = ( 0 , 5 , 2 , 0 , 1 ) 임의의 정수 t 가 주어졌을 때 X C o r r ( t ) 는 다음과 같이 정의된다. X C o r r ( t ) = ∑ i = 0 n − 1 x i y i + t ( i < 0 이거나 i ≥ n 이... www.acmicpc.net 문제가 꽤나 긴 관계로 사진에 전부 담지 못했습니다. 2018년 KOI 고등부 2번 문제 그 당시 현장에서는 감도 못 잡고, 결국 참교육 당했던 기억이 있다. 2년 만에 리벤지인 셈 X, Y도 수열 중 Y 수열을 한 칸씩 밀어가면서

Naver Blog

SCPC 2019 참가 접수 시작했습니다.

Samsung Collegiate Programming Cup 2019 줄여서 SCPC로 많이 불리는 대회인데요 평소 KOI,IOI나 ICPC같은 대회에 관심있었다면 온라인예선이라도 쳐보시면 좋을것같습니다. 6월18일까지 신청받고, 1차 온라인예선은6월21일인데 전 기말고사가 17~21일인데 애매하네요

Naver Blog

scpc 1차예선

1,2번만 풀고 끝났습니다ㅠ 괜히 3번 풀어볼려다가, 4,5번 문제 구경도 못하고 시간만 날렸습니다. 3번 풀다 잠들었네요

Naver Blog

알고리즘 대회 일정들

알고리즘 대회, 프로그래밍 대회, 코딩 테스트, 코딩 콘테스트 등 다양한 이름으로 불리기도 하지만 대회에서 알고리즘이 핵심인 만큼, 알고리즘 대회라고 칭함 라고 썼지만, 이쪽에 문외한인 사람들에겐 알고리즘이 뭔지 잘 모르기에 코딩 대회라고 하는 게 그나마 설명하기 쉬울 듯 SCPC(삼성전자 대학생 프로그래밍 경진대회) 참가신청 - 5.14(화) - 6.18(화) 1차 온라인 예선 - 6.21(금) 09:00 - 6.22(토) 09.00 2차 온라인 예선 - 7.06(토) 09:00 - 21:00 본선 - 7.30(화) 13:30 - 17:30 //장소:삼성전자 서울 R&D캠퍼스 상금 외에 선물도 나쁘지 않게 준다고 함 ACM-ICPC(국제 대학생 프로그래밍 대회) //사진(2018년)과 내용은 무관 2019 Asia-Seoul Korea Preliminary Contest (온라인 예선) 예비소집 Oct. 4(Fri.) ~ 예선대회 Oct. 5(Sat.) 2019 Asia-Seoul

Naver Blog

2차 예선

1문제따리 풀고, 공부안한 과거의 나를 탓하며 포기 2번은 왜 부분점수도 안주는지 모르겠고, 나머진 접근도 못하겠다 내년을 기약

Naver Blog

[Unity5]공피하기 게임

게임 초기 화면 초기화면 게임 실행시 플레이어 공(핑크색) 위짤 중 아래쪽display가 게임시점 게임 스타트 파란 공 먹으면 10점 득점 빨간 공 먹으면 사망 사망시 티모의 웃음소리와 함께 이렇게 된다. 모든 공은 자동 생성 후, 바닥밑으로 내려가면 자동 삭제 하루종일 이거만 했다.

1