전체 글 33

[C++] BFS(너비 우선 탐색)구현하기

너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용한다. 위의 문장은 너비 우선 탐색에 대한 정의이다. 여기서 잘 봐야 할 단어는 "인접한"이다. 처음 BFS(너비 우선 탐색)을 공부할 때 단어 그대로 너비 우선 탐색으로 이해했기 때문에 헷갈리는 부분이 있었다. 우리는 대부분 아래와 같이 깊이감이 있는 그래프를 그린다. 너비 우선 탐색이라고 하여 나는 a -> b -> d -> ... 순으로 탐색을 해야한다고 생각했으나.. 위에서 말했듯 "인접한" 정점을 우선적으로 탐색하는 것이므로 a -> b -> c -> d ... 순으로 탐..

개발공부/C++ 2022.07.13

[프로그래머스/C++] Level1_문자열 내 마음대로 정렬하기

-문제는 더보기에 있어요.- 더보기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings..

[프로그래머스/C++] Level1_콜라츠 추측

-문제는 더보기에 있어요.- 더보기 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –..

[프로그래머스/C++] Level1_제일 작은 수 제거하기

-문제는 더보기에 있어요.- 더보기 문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 arr return [4,3,2,1] [4,3,2] [10] [-1] #include #include #include using namespace std; vector solution(vector arr) { vector answer; ..

[프로그래머스/C++] Level1 _ 완주하지 못한 선수

-문제는 더보기에 있어요.- 더보기 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion..

[Android/Kotlin] 초기 설정 및 에러 처리

원래 JAVA 로 짜놨던 앱을 Kotlin으로 리팩토링 하려는 계획이 있었다. 하지만 난 Kotlin으로 한번도 Android 프로젝트를 실행한 적이 없기 때문에 가볍게 강의를 통해 학습하려고 했다. 영상에서 하라는대로 따라 했는데.. 아니 그저 초기 설정값 그대로 실행했는데... 에러가 줄줄이로 떴다. 초기에 이런 에러가 뜨는 사람이 많을 듯 하여 그 해결 과정을 정리해보려 한다. 우선 나의 SDK version은 31이다. 이것부터 맞춰주고 가는 것이 수월할 듯 하다. 당연하겠지만 SDK manager를 통해 SDK version 31이 깔려 있는 지 먼저 확인해준다. 깔려있다면, app 단위의 build.gradle 파일로 들어가서 compileSdkVersion과 targetSdkVersion을 ..

[프로그래머스/C++] Level1_최소직사각형

위클리 챌린지 -문제는 더보기에 있어요.- 더보기 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로길이 세로길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든..

[프로그래머스/C++] Level1_실패율

-문제는 더보기에 있어요.- 더보기 문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이..

다짐하는 글.......^.ㅠ

거의 4개월만에 돌아온 블로그.. 핑계라면 핑계지만 학기중에 정말 바빴다 엉엉.. 개인 공부 할 시간이 거의 없었다....... 중간고사 끝나고 자취방으로 이사 하자마자 바로 교생 시작... 교생 하는 동안엔 잠도 줄여가며 과제와 일을 했던 터라 정말 힘들었다. 교생 끝나고 돌아오니 기말이 10일 남짓 남아있던 터라 정신없이 종강을 한 후 좀 쉬다보니 벌써 날짜가 이렇게 되었다. 왜 여기에 주절주절 변명을 하는 진 모르겠지만.. 나 혼자 보는 글 일지라도 뭐라도 써놓으면 공부할 동기가 생길 것 같아서 남겨본다. 이번 여름 방학 때 할 일 : 1. 정보처리기사 실기 (7/24) 2. 운전 면허................(제발 좀) 3. 포폴 앱 7월까지 버전 1.0.0 완성 후 출시 4. 청년취업사관학교..

데일리 2022.06.29

[일상/자격증] 정보처리기사 2022년 1회차 필기 후기

[2022.03.05] 며칠 전(3월 5일)에 봤던 정보처리기사 필기시험 후기를 들고 왔습니다~! 저희 학과 졸업 요건 중 하나라서 보게 되었는데요... 시험 후기 및 시험 준비 꿀팁을 좀 전해드리면 어떨까 하여 이렇게 포스팅을 시작합니다!!! 정보처리기사 응시 자격은 아래에 :-) 더보기 구분응시 자격제출 서류 학력 응시 4년제: 졸업 또는 4학년1학기 이상 재학/휴학/제적 졸업/재학/휴학/수료/제적증명서 중 택1 3년제: 졸업 후 1년 실무 경력 졸업증명서+경력(재직)증명서 2년제: 졸업 후 2년 실무 경력 졸업증명서+경력(재직)증명서 경력 응시 동일 직무 분야에서 4년 이상 실무경력 경력(재직)증명서 기능사 취득후 3년 실무경력 경력(재직)증명서+자격증 사본 산업기사 취득 후 1년 실무경력 경력(재..

데일리 2022.03.07