[C_C++]코딩테스트 연습

    [C++] 프로그래머스 - 로또의 최고 순위와 최저 순위

    [C++] 프로그래머스 - 로또의 최고 순위와 최저 순위

    내 풀이 이번 건 좀 괜찮게 푼 것 같다! iterator 와 find 함수를 사용해당첨번호와 같은 값을 내 로또번호에서 찾으면 worst와 best에 모두 더해주고, 내 로또번호에 0이 있으면 그 개수만큼 best에만 더해줬다. 일치하는 번호를 세는 데 사용했던 worst와 best 변수의 값은 switch를 이용해 순위로 재할당해줬고, 그 순위를 answer에 차례로 넣어줘서 반환했다. #include #include #include using namespace std; vector solution(vector lottos, vector win_nums) { vector answer; int worst = 0, best = 0; for (int i = 0; i < win_nums.size(); i++..

    [C++] 프로그래머스 - 예산

    [C++] 프로그래머스 - 예산

    내 풀이 ㅠㅠ서버 끊겨서 새로고침 했더니 채점된 코드라고 점수가 안 떴다... 정렬해서 더하면 되는 간단한 문제! #include #include #include #include using namespace std; int solution(vector d, int budget) { int answer = 0; int temp = 0; sort(d.begin(), d.end()); for (int i = 0; i < d.size(); i++) { if (temp + d[i]

    [C++] 프로그래머스 - 소수 만들기

    [C++] 프로그래머스 - 소수 만들기

    내 풀이 (실수로 cout을 안 지웠는데 잘 채점이 됐다..!) for문이 엄청 많은데ㅎㅎ... 어차피 함수로 뽑아도 for문 쓰면 실질적으로 돌아가는 for문은 똑같을 것 같아서 그냥 한방에 해결했다. 소수 판별은 2부터 자기자신 직전까지 포문으로 나눠봐서 나눠지는게 있으면 break해서 나가고, 안 나눠져서 끝까지 갔으면 answer++로 값을 올려줬다. #include #include using namespace std; int solution(vector nums) { int answer = 0; for (int i = 0; i < nums.size() - 2; i++) { for (int j = i + 1; j < nums.size() - 1; j++) { for (int k = j + 1; k..

    [C++] 프로그래머스 - 신규 아이디 추천

    [C++] 프로그래머스 - 신규 아이디 추천

    내 풀이 ㅠㅠ for문 돌릴 때 증감자 없애고 안에서 쓸 수 있는걸 몰라서 엄청 삽질했다... #include #include using namespace std; string solution(string new_id) { //1단계 대문자 -> 소문자 for (int i = 0; i = 'A' && new_id[i] = 'a' && new_id[i] = '0' && new_id[i] = 16) new_id.erase(15, new_id.size() - 15); if (new_id.back() == '.') new_id.erase(new_id.size() - 1, 1); //7단계 길이가 2자 이하면 마지막 문자를 new_id 길이 3..

    [C++] 프로그래머스 - 크레인 인형뽑기

    [C++] 프로그래머스 - 크레인 인형뽑기

    무슨 문제길래 카카오 겨울 인턴십 문제가 푼 사람이 2만명이 다 돼가나 했더니... 이중배열의 개념만 잘 이해하고 있으면 생각보다 쉬운 문제였다! 1. board.size()를 하면 가장 겉의 배열의 요소 수를 세어주므로 세로줄 수, 즉 row_num으로 둔다. 2. moves[i]는 x(col_num)을 지정해 줬다. 이중배열은 array[row_num][col_num] 형식으로 요소를 꺼낸다. 3. bucket에 push/pop_back을 사용해 꺼낸 인형의 숫자를 넣거나 없앤다. 4. 인형을 없앨 때는 bucket의 size가 1 이상이어야 비교가 가능하므로 &&를 걸어준다. #include #include using namespace std; //vector board = { {0,0,0,0,0}..

    [C++] 프로그래머스 - 2016년

    [C++] 프로그래머스 - 2016년

    switch에서 바로 return을 줘서 간단하게 구현해봤다. #include #include using namespace std; string solution(int a, int b) { int day = b-1; for (int i = 1; i < a; i++) { if (i == 2) day += 29; else if (i == 4 || i == 6 || i == 9 || i == 11) day += 30; else day += 31; } switch (day%7) { case 0: return "FRI"; case 1: return "SAT"; case 2: return "SUN"; case 3: return "MON"; case 4: return "TUE"; case 5: return "WED"..

    [C++] 프로그래머스 - 모의고사

    [C++] 프로그래머스 - 모의고사

    map을 써서 풀려다 포기하고 오랜만에 배열을 쓰려고 했더니 낯설어서 비교적 쉬운 문제임에도 시간을 좀 잡아먹었다. #include #include #include using namespace std; vector solution(vector answers) { vector answer; int a[5] = { 1, 2, 3, 4, 5 }; int b[8] = { 2, 1, 2, 3, 2, 4, 2, 5 }; int c[10] = { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 }; int vec[3] = { 0, }; int max_num; for (int i = 0; i < answers.size(); i++) { if (answers[i] == a[i % 5]) vec[0]++; if (an..

    [C++] 프로그래머스 - 폰켓몬 (set)

    [C++] 프로그래머스 - 폰켓몬 (set)

    내 풀이 ) set을 쓰긴 했는데 set 사용법과 algorithm 헤더에 min까지 들어있는지 잘 몰라서 코드가 길어졌다. #include #include #include using namespace std; int solution(vector nums) { int answer = 0; int nums_length = nums.size(); set kind; for (int i = 0; i kind.size() ? kind.size() : nums_length/2; return answer; } 다른 사람 풀이 참고) 1. set 선언할 때 vector의 반복자 멤버함수인 be..