Algorithm (2139) 썸네일형 리스트형 (Python) - 백준(BOJ) 20499번 : Darius님 한타 안 함? https://www.acmicpc.net/problem/20499 20499번: Darius님 한타 안 함? 그가 「진짜」이면 gosu, 「가짜」이면 hasu를 출력한다. www.acmicpc.net if문을 써보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열을 입력받아 '/'단위로 split한 뒤 s에 저장합니다. 그 후 s의 각 원소를 int로 형변환해서 k, d, a에 저장합니다. 📔 정답출력 k + a < d or d == 0 이면 hasu, 아니면 gosu를 출력하면 됩니다. 📕 Code s = input().split('/') k = int(s[0]) d = int(s[1]) a = int(s[2]) if(k + a < d or d == 0) : print("hasu") else :.. (C++) - 백준(BOJ) 2204번 : 도비의 난독증 테스트 https://www.acmicpc.net/problem/2204 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net 자료구조 map을 이용해 해결했습니다. 📕 풀이방법 📔 입력 및 초기화 원본 문자열을 저장할 vector 변수 v, map변수 m에는 모두 소문자로만든 문자열이 key, 그 문자열의 원본문자열이 저장되어있는 v의 index를 저장했습니다. 📔 풀이과정 1. v를 저장할 때마다 해당 문자열을 모두 소문자로 바꾸고 그 인덱스를 m에 저장해줍니다. 2. map에 삽입시 자동 사전순으로 key가 저장되므.. (C++) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 괄호 변환 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 재귀를 문제설명대로 구현하는 문제였습니다. 📕 Code #include using namespace std; bool isRightBracket(string s){ stack st; if(s == "" || s[0] == ')') return false; for(int i = 0; i < s.size(); i++){ if(s[i] == '(') st.push(s[.. (C++) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문자열을 다루는 문제였습니다. 📕 풀이방법 📔 풀이과정 1. 자르는 단위를 1 ~ s.size()까지 차례대로 정해서 확인합니다. 1-1. s의 처음 0번 index부터 시작해서 s.size() - 1까지 연속된 단위들의 처음을 string 변수 tmp에 저장합니다. 1-2. 이후 tmp가 연속되는 문자열의 개수를 세줍니다. 연속된 부분이 끝났다면 압축결.. (C++) - 백준(BOJ) 6068번 : 시간 관리하기 https://www.acmicpc.net/problem/6068 6068번: 시간 관리하기 성실한 농부 존은 시간을 효율적으로 관리해야 한다는 걸 깨달았다. 그는 N개의 해야할 일에 (1 n; for(int i = 0,t,e; i > t >> e; v.push_back({t,e}); } sort(v.begin(),v.end(),cmp); for(int i = n-1; i >= 0; i--){ ans = min(ans, v[i].endTime); ans -= v[i].timeNeed; } if(ans < 0) cout (C++) - 백준(BOJ) 2018번 : 수들의 합 5 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net sliding window로 풀었습니다. 📕 풀이방법 📔 입력 및 초기화 l = 1, r = 1로 출발합니다. 답을 출력할 변수 ans, 연속구간의 누적합을 저장할 변수 sum, 입력받을 변수 n을 선언합니다. 📔 풀이과정 l > n; while(l (C++) - 백준(BOJ) 1173번 : 운동 https://www.acmicpc.net/problem/22864 22864번: 피로도 첫 번째 줄에 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. (하루는 24시간이다.) 맨 처음 피로도는 0이다. www.acmicpc.net 수학 + greedy 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 일한 양을 저장할 변수 work, 피로도 변수 tired, a, b, c, m을 선언합니다. * int 범위 초과할 수 있으므로 long long으로 선언합니다. 📔 풀이과정 1. 24시간동안 일할 수 있으면 일 해줍니다. 일을 하고 work += b, 피로도가 a만큼 올랐으니 tired + a 해줍니다. 2. 일할 수 없다면 쉬어줍니다. tired -= c 해주며 tired음수면 0으로 다시.. (C++) - 백준(BOJ) 17471번 : 게리멘더링 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 조합 + union find로 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n입력 후 일차원 배열 popular에 각 구역의 인구를 입력받습니다. vector 변수 graph로 간선을 입력받고 인접리스트를 형성합니다. 📔 풀이과정 1. 구역을 2곳로 나누기 : 임의로 나눕니다. 한 쪽의 선거구가 정해진다면 자동으로 나머지 구역들로 선거구가 구성됩니다. 따라서 nCi (i = 1 ~ n / 2) 만큼 한 쪽 선거구.. 이전 1 ··· 137 138 139 140 141 142 143 ··· 268 다음