본문 바로가기

전체 글104

[C++] [프로그래머스] 하샤드 수 (pps 4-7) 문제 풀기 전 생각 : /* 입력받은 숫자를 문자열로 변환 후 각 문자열의 캐릭터마다 '0'을 뺀 값을 변수 n에 더하고 만약 x%n 이 0이라면 하샤드 수이고 아니라면 하샤드 수가 아니다 */ #include #include using namespace std; bool solution(int x) { string s = to_string(x); int n = 0; for(int i=0 ; i 0) { nSum += nTemp % 10; nTemp /= 10; } return x % nSum == 0 ? true : false; } 아스키 코드와 문자열을 사용하지 않고 나누기와 나머지를 활용해 푼 듯 하다 이렇게 푸는 방법도 있구나~ 나쁘지 않다. 2021. 7. 18.
[C++] [leetCode 258] Add Digits (pps 4-6) 문제 풀기 전 생각 : /* 재귀 함수를 사용해서 풀기로 생각했다. 숫자가 입력되면 그 숫자를 string 타입으로 변환하고 변환된 string을 쪼개서 모두 더하고 더한 것을 재귀함수 형식으로 콜한다. 그리고 만약 입력된 숫자가 10보다 작다면 리턴한다. */ #include class Solution { public: int addDigits(int num) { if(num < 10) return num; string s = to_string(num); int answer = 0; for(int i=0 ; i 2021. 7. 18.
[C++] [LeetCode 342] Power of Four (ops 4-5) 문제 풀기 전 생각 : /* 4의 power of four 인지 구하는 문제이다 반복문으로 입력받은 숫자 n이 1보다 크거나 같다면 반복한다. 반복마다 n이 1이라면 true를 리턴한다. 만약 n이 4로 나누어 떨어지지 않는다면 false를 리턴한다. 그리고 두 경우에 해당하지 않는다면 n을 4로 나누고 다음 반복으로 넘어간다. 반복이 끝났는데도 리턴되지 않았다면 false 를 리턴한다. */ class Solution { public: bool isPowerOfFour(int n) { while(n >= 1){ if(n == 1) return true; if(n%4 != 0) return false; n = n/4; } return false; } }; https://leetcode.com/proble.. 2021. 7. 17.
[C++] [백준 2775] 부녀회장이 될테야 (pps 4-4) 문제 풀기 전 생각 : /* 먼저 14층까지 각 층마다 14개의 집이 있습니다. 입주 조건에 맞춰 모든 집에 필요한 사람 수를 전부 배열에 저장해두고 입력되는 숫자에 맞춰 인덱싱해 출력하도록 했다. */ #include using namespace std; int main() { int n[15][15]={ 0, }; int t,x,y; for(int i=0 ; i> y; cout 2021. 7. 17.
[C++] [백준 3052] 나머지 (pps 4-3) 문제 풀기 전 생각 : /* 어려운 문제는 아니다. 세트 컨테이너를 사용하면 쉽게 풀수 있다 세트 컨테이너는 중복을 허용하지 않기 때문에 입력받은 숫자를 42로 나눈 나머지값을 세트에 insert하면 중복은 받지 않는다. 그런 다음 세트의 사이즈를 출력하면 우리가 원하는 답을 구할 수 있다. */ #include #include using namespace std; int main() { int n; set s; for(int i=0 ; i> n; s.insert(n%42); } cout 0) a[n%42]=1; for(auto n:a) s+=n; printf("%d",s); } 나는 컨테이너를 사용했지만 위의 코드에선 42칸짜리 배열을 사용했다 저 방법도 나쁘지 않은것 같다. 2021. 7. 17.
[C++] [백준 10757] 큰 수 A+B (pps 4-2) 문제 풀기 전 생각 : /* 우선 string 변수에 숫자 두개를 저장한다. 두 숫자가 길이가 다를수 있으니 더 짧은 숫자 앞에 '0'들을 추가해 길이를 맞춰준다. 그리고 두 숫자를 더할때 overflow가 발생할 수 있으니 두 숫자 모두 앞에 '0'을 더한다. 그리고 맨 뒤에서부터 a+b+overflow 를 한다. a는 첫번째 숫자의 i번째 char이다. b는 두번째 숫자의 i번째 char이다. 만약 오버플로우가 발생하면 overflow라는 변수에 1을 넣고 a+b+overflow-10+'0'을 tmp변수에 넣는다. 발생하지 않으면 0을 넣고 a+b+overflow+'0'를 tmp변수에 넣는다. 그렇게 모든 작업이 끝난후 tmp변수를 리버스 시킨다. 리버스 후 tmp 변수의 첫번째 char가 '0'이라.. 2021. 7. 17.
[C++] [백준 2953] 나는 요리사다 (pps 4-1) 문제 풀기 전 생각 : /* 참가자들의 점수는 총 다섯줄에 걸쳐서 다섯번 입력된다. 우리는 가장 높은 점수를 받은 참가자의 번호와 점수의 합을 저장했다 출력하면 된다. 반복문으로 입력을 받을때마다 판별하면 된다. 간단한 문제이다. */ #include using namespace std; int main() { int n,sum=0,max=0,max_i=0; for(int i=0 ; i n; sum += n; } if(sum > max) { max = sum; max_i = i+1; } } cout 2021. 7. 17.
[C++] [백준 15947] 아기 석환 뚜루루 뚜루 (pps 3-9) 문제 풀기 전 생각 : /* 먼저 기본 가사를 14단어로 쪼개서 입력 받은 숫자를 14로 나눈 값으로 여러가지 케이스를 나눴습니다 그리고 tururu 와 turu 에 해당하는 케이스들은 ru 가 5개보다 적은 케이스들은 직접 조건문으로 출력하고 만약 5개이거나 더 많으면 n/14 + 2 와 n/14 + 1 로 표현했다 */ #include using namespace std; int main() { int n; cin >> n; if( n%14 == 1 || n%14 == 13) cout 2021. 7. 16.
[C++] [LeetCode 38] Count and Say (ops 3-8) 문제 풀기 전 생각 : /* 문제 이해가 잘 되지 않았다 그래서 여기저기 한국어로 해석된 문제를 찾아봤다. 인터넷에서도 정보가 없어서 그들의 코드를 보고 문제의도를 겨우 이해했다 문제 설명을 좀 잘해놓았으면 좋겠다. */ class Solution { public: string countAndSay(int n) { if(n == 1) return "1"; string temp = countAndSay(n-1); string ans = ""; int cnt = 1,i; for(i=1;i 2021. 7. 16.
[C++] [LeetCode 860] Lemonade Change (pps 3-7) 문제 풀기 전 생각 : /* 먼저 동전이 입력되었을 때 5코인이 지불되었다면 가능한 경우의 수는 5코인이 하나 증가하는 것 뿐이다. 10 코인이 지불 되었다면 가능한 경우의 수는 10코인이 하나 증가하고 5코인이 하나 감소하는 것이다. 만약 5코인을 하나 감소시킨 뒤 5코인이 0보다 작으면 false 를 리턴한다. 20 코인이 지불 되었다면 가능한 경우의 수는 10코인이 하나 감소하고 5코인이 하나 감소하거나 5코인이 세개 감소하는 것이다 만약 두가지 경우 모두 5코인과 10코인의 수가 부족하다면 false를 리턴한다. 그리고 만약 모든 작업이 리턴이 되지 않고 정상적으로 끝났다면 true를 리턴한다. */ class Solution { public: bool lemonadeChange(vector& b.. 2021. 7. 16.
코딩으로 알바하기 마지막 드뎌 오늘 모든 일을 다 끝냈다 이제 캠프와 프로젝트에 집중할 수 있을것 같다. 짧은 소감으로는 항상 몸으로 때우는 일만 하다가 머리로 하는 일을 하니 확실히 몸이 편했다 근데 이게 문제는 몸이 편하다 보니까 좀 늘어지는 감이 없잖아 있었던 것 같다. 내가 배우고 공부한 것들이 나에게 돈을 벌어다 준다는 것이 생각보다 큰 의미로 남을 것 같다. 이 돈으로 부모님 뭐라도 사드리고 제주도에 캠프 갔다 올 때 경비로 써야겠다. 뭔가 열심히 글 올리던거에 비하면 마지막이 좀 내용이 없는것 같지만 기분 탓입니다. ㅎㅎㅎ 2021. 7. 15.
코딩으로 알바하기 5 & 6 일차 5일차는 3,4일차에 했던 작업을 했습니다. 쓸게 딱히 없어서 6일차에 꼽사리 껴서 올립니다! 본론으로 바로 들어가겠숨다 위의 사진이 바로 알바로 요청받은 프로그램입니다. 간단한 소개를 하자면 은행에서 후원내역을 api로 제공하는데 엑셀로 다운 받고 회원 관리 소프트웨어인 MRM에서 납부구분 리스트와 후원자 리스트를 다운 받아서 위의 파일 세개의 위치를 입력하면 자동으로 요청받은 형식으로 csv 파일을 변환해줍니다. 예를 들어 ECC와 TIM 중에 선택을 하지 않으면 선택해달라는 문구가 출력되고 그리고 위와 마찬가지로 위치가 입력되지 않은 파일이 있다면 해당 파일의 위치를 입력하달라고 안내합니다. 그리고 만약 모든 파일의 위치가 올바르다면 작업이 실행됩니다!! 실제 리스트는 일급비밀 사항이기에 파일이 이.. 2021. 7. 15.