문제로이동 10423번: 전기가 부족해 첫째 줄에는 도시의 개수 N(1 ≤ N ≤ 1,000)과 설치 가능한 케이블의 수 M(1 ≤ M ≤ 100,000)개, 발전소의 개수 K(1 ≤ K ≤ N)개가 주어진다. 둘째 줄에는 발전소가 설치된 도시의 번호가 주어진다. 셋째 www.acmicpc.net 목차 문제 설명 문제를 풀 당시에 골드2로 책정되어 있지만 사실 이보다 낮은 난이도 같습니다. 다른 최소 스패닝트리와 차이가 하나 있다면 이미 발전소와 연결되어 있는 도시는 굳이 한번 더 연결할 필요가 없기 때문에 연결하지 않으면 됩니다. union 함수 부분에 로직을 몇가지 추가했는데, 발전소와 연결되어 있는지를 체크하기 위해서는 기존 방법(Index가 작은 곳으로 연결)대신 발전소를 기준으로 Parent 배..
이런 분들께 이 글을 추천합니다 SSAFY 1학기의 후기가 궁금하신 분 SSAFY 추천하는 이유가 궁금하신 분 10분 정도 시간을 뺏기고 싶으신 분 SSAFY에서 얼마나 많은 선물💌을 주는지 궁금하신 분 SSAFY, 경쟁이 아닌 공생 이번 섹션에서 말씀드릴 것은 SSAFY를 하며 가장 놀랐던 부분이기도 하고 인간적으로 많이 배웠던 부분이기도 합니다. 반을 배정받고 난 후 교육생들의 "시작점이 다르다" 는 것을 느낄 수 있습니다. 이미 코테를 거뜬하게 통과하는 실력을 가진 교육생, 이미 프로젝트 경험이 풍부한 교육생, 이미 대기업 서류 정도는 거뜬하게 통과하는 스펙을 가진 교육생 등 많은 부류가 있습니다. 이처럼 상대적으로 앞서있는 교육생들을 보며 "내가 안일하게 있을 때가 아니다", "따라잡고 말겠다"라..
문제로이동 JUNGOL www.jungol.co.kr 목차 문제 설명 모듈러 연산을 하는 문제입니다. N의 범위가 명시되지 않아 TLE를 예측할 수 없지만, 혹시 모를 효율성을 위해 모듈러 연산을 해주었습니다. 자세한 설명은 소스코드에 주석을 달아두었습니다. 소스 코드 Python N = int(input()) # answer : 월,화,수,목,금,토,일의 횟수 저장 answer = [0]*7 # 12개월 초기 세팅 # month[0]은 0 처리 # 구현의 편의성을 위하여 1월~12월의 인덱스를 갖는다. (0~12) # 예시) 1월은 index 0이 아니라 1을 가리킨다. 12월은 index 12를 가리킨다. month = [31]*13 month[0]=0 month[4]=30 # 4,6,9,11월은 3..
문제로이동 16724번: 피리 부는 사나이 첫 번째 줄에 지도의 행의 수를 나타내는 N(1 ≤ N ≤ 1,000)과 지도의 열의 수를 나타내는 M(1 ≤ M ≤ 1,000)이 주어진다. 두 번째 줄부터 N개의 줄에 지도의 정보를 나타내는 길이가 M인 문자열이 주 www.acmicpc.net 목차 문제 설명 틀렸습니다*3 Union-Find를 하며 주의해야 할 점이 parent에 직접 접근을 하게 되면 미처 업데이트 되지 않았던 값들이 있기에 반드시 getParent로 접근을 해야하는데 이를 놓쳐버렸습니다😅 접근 방법 문제 방향을 잡는데 5분 가량 걸렸습니다. 처음엔 필드에 적힌대로 이리 저리 따라가다가, Union-Find라는 것을 알게 되었습니다! 이 문제를 푸는데 있어서 가장 중요한 것은 구역 입니다..
문제로이동 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 목차 문제 풀이 접근 방법 어떤 알고리즘인지 전혀 맥락을 못잡다가 문제 푼 지 35분이 경과되어서 알게 되었습니다. 2개의 임의의 풍선 중 크기가 큰 풍선을 터뜨려야 한다. 단, 크기가 작은 풍선은 딱 1번만 터뜨릴 수 있다. 풍선을 터뜨렸다면 풍선의 빈 공간을 다시 채운다(양 옆의 풍선을 당겨준다) 최후에 1개의 풍선이 남았을 때, 절대 남을 수 없는 풍선의 갯수를 구하자 DFS인가? 생각했다가 N의 크기를 보고 절대 아니라고 판단했고, O(N)에 끝내야 한다는 것으로 생각을 굳혔습니다. 다른 측면에서 생각해볼까요? 어떤 임의의 풍선을 선택하고 왼쪽 또는 ..
문제로이동 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 목차 시작하기 전에 2개월 전에 스터디에서 공통 문제로 풀었다가 실패했던 문제였습니다. 이번엔 노트에 로직을 정리하고 1WA를 맞은 뒤 이거다! 싶어서 수정했는데 정답이었고 2회에 걸쳐 로직을 수정/추가했습니다. 접근 방법 벽이 움직인다는 점에서 캐슬디펜스 문제와 비슷하다고 생각했습니다. 비슷한 방식으로 접근했다가 큰 코 다쳤는데 그 이유는 캐슬 디펜스에선 주인공 위치가 고정되어 있지만, 이번 문제는 사방탐색(상하좌우) 뿐만 아니라 대각선 이..
쉴 새 없이 달려왔던 4개월간 제게 있었던 일들을 얘기하려 합니다. 모든 내용은 지극히 주관적으로 작성되었습니다. 블로그 변화 드디어 블로그가 상단에!! 아실 분들은 아시겠지만 동명이인 모델분이 계십니다.. 그래서 예전엔 아무리 검색해도 상단에 노출되지 않았었는데 어느 날 보니 제 블로그가 상단에 노출되기 시작하더라구요. 참 별 일 아니지만 스스로는 뿌듯했습니다😀 검색 방문자 증가 오카방URL을 타고 와주시는 감사한 분들도 계십니다. 구글 검색창을 통해 노출된 목록중 제 블로그를 클릭하셔서 정보를 얻어간다는 것이 참으로 뿌듯했습니다. SSAFY 6기 모집 시즌이라 유독 많이 들어와주시는데, 더 양질의 정보를 제공할 수 있도록 노력하겠습니다😊 늘 부족한 알고리즘 내가 투자하는 주식도 이랬으면,,, SSAF..
문제로이동 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 설명 얼핏 보면 간단한 BFS/DFS 문제로 보입니다. 하지만 주의해야 할 점이 있습니다. 자, 위와 같은 경우를 볼까요? 모든 방향(상하좌우)으로 나아갈 수 있는 1번 터널이지만 반대로 내가 가려고 하는 목적지에 도달이 불가능한 경우입니다. 위와 같이 좌,우로만 접근해야하는 터널이 있는 경우에 말이죠. 그래서 저는 다음과 같이 메소드를 구현했습니다. 첫째, 현재 터널 모양에서 나아갈 수 있는 방향을 반환(좌,우만 갈 수 있는 터널이라면 좌,우를 반환)하는 int[] getDirection 메소드 둘째, 다음 터널이 내가 지금 나아가려 하는 방향으..
문제로이동 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 설명 re 라이브러리를 사용했습니다. 좌/우측 특정 문자 제거 좌/우측 특정 문자 또는 공백 제거엔 strip(), lstrip(), rstrip()을 사용합니다. 이번 문제에서는 .을 제거하는 것이므로 strip('.')과 같이 사용할 수 있었습니다. 치환 및 제거 정규표현식에 해당하는 문자들을 치환, 제거하기위해 re.sub 함수를 사용했습니다. 위 두 기능을 제외하고는 하드코딩으로 가능하기에 생략하겠습니다. 이번 문제를 풀면서 re ..
문제로이동 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 목차 문제 설명 시뮬레이션/구현 문제입니다. 이미 필드의 크기가 10*10으로 고정되어 있고 주인공의 위치도 고정되어 있어 수월하게 접근 가능했습니다. BC의 위치와 세기, 허용 거리가 다르기 때문에 이를 중점적으로 어떻게 계산할 것인지 판단해야 합니다. 저는 두 주인공을 동시에 움직이면서 매 이동마다(t=0부터) 모든 BC와 거리를 계산했고 주인공 A, 주인공 B가 사용할 수 있는 BC를 리스트에 담았습니다. 정리하자면, 로직은 아래와 같습니다. 입력조건 BC를 입력 받을 때 POWER를 내림차순으로 정렬해 줍니다.(이후에 따로 정렬할 필요가 없어집니..