728x90
반응형

프로그래머스 63

프로그래머스, 3진법 뒤집기 : C++ [CPP]

우리가 쉽게 하는 n진법 변환을 컴퓨터로 어떻게 표현할까? 생각하면 된다. 역순인 이유도 있었다. https://programmers.co.kr/learn/courses/30/lessons/68935?language=cpp 배운 점 스택으로도 넣어서 꺼내쓸 수 있지만 나는 string으로 연습해봤다. #맞는 풀이 #include #include #include #include using namespace std; //n은 1억 이하인 자연수 //3진수 만드는법 3으로 나누면서 몫과 나머지 조사. int solution(int n) { int answer = 0; int div = 0; //몫 int res = 0; //나머지 string s = ""; div = n; // 초기값. while(div>=3..

프로그래머스, 폰켓몬 : C++ [CPP]

쉽게 풀 수 있지만 문제 해석을 잘해야 한다. https://programmers.co.kr/learn/courses/30/lessons/1845?language=cpp 배운 점 Set은 Unique함 (정렬할 수도 안할 수도 있음) Set의 원소 추가는 Insert로 함 #맞는 풀이 #include #include using namespace std; int solution(vector nums) { int answer = 0; set s; // unique한 값을 넣음 int size = nums.size(); //set으로 바꾸어서 unique한 값을 만든 뒤 //각 종류마다 한마리씩 가져가는 것이 가장 다수의 종류를 가져갈 수 있음 for(auto x : nums){ s.insert(x); } /..

프로그래머스, 체육복 : C++ [CPP]

이건 내가 푼 것보다 다른 사람이 훨씬 훨씬 잘풀었다. 참고해서 설명해보자 https://programmers.co.kr/learn/courses/30/lessons/42862?language=cpp #맞는 풀이 #include #include using namespace std; int student[35]; // 학생 배열(체육복의 수가 value) int solution(int n, vector lost, vector reserve) { int answer = 0; for(int i : reserve) student[i] += 1; // 여벌 체육복을 가지고 있는 학생 for(int i : lost) student[i] += -1; // 체육복을 잃어버린 학생 //위 for문을 거치면 결국 빌려줄 ..

프로그래머스, 모의고사 : C++ [CPP]

어렵진 않다만 그냥 여러가지 해줘야 해서 귀찮았다. https://programmers.co.kr/learn/courses/30/lessons/42840?language=cpp #맞는 풀이 #include #include #include using namespace std; int c1[5] = {1,2,3,4,5}; int c2[8] = {2,1,2,3,2,4,2,5}; int c3[10] = {3,3,1,1,2,2,4,4,5,5}; vector solution(vector answers) { vector answer; vector score; int cnt1 =0; int cnt2 =0; int cnt3 =0; int max = 0; for(int i = 0; i

프로그래머스, 완주하지 못한 선수 : C++ [CPP]

어렵다기 보다.. 그냥 해시로 할까 생각이 안나면 못푸는 그러한.. 것? https://programmers.co.kr/learn/courses/30/lessons/42576 십만 * 십만해봐야 100억이지..라고 생각하면서도 왜 가볍다고 생각했는지..ㅎ 즉, 다른 방법을 찾아야했다. #틀린 풀이 #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; int length = completion.size(); for(int i = 0; i 0) { //answer에 테이블에 key값을 넣음 answer = pair.first; break; ..

프로그래머스, 카카오프렌즈 컬러링북 : C++ [CPP]

어렵지 않았다. 다만 전역변수 초기화를 안해서 20분동안 헤맸다. https://programmers.co.kr/learn/courses/30/lessons/1829# #맞는 풀이 #include #include #define X first #define Y second int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,1,-1}; using namespace std; int visited[100][100]; queue q; // 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요. vector solution(int m, int n, vector picture) { for(int i = 0; i

프로그래머스, 숫자 문자열과 영단어 : C++ [CPP]

어렵지는 않지만 그렇다고 단순하지도 않다. 다만 정규 표현식을 아느냐.. 모르느냐에 따라 풀이 시간이 달라진다. 그냥 문자열이 주어졌을 경우는.. 거의 정규표현식이 좋다고 생각하면 된다. https://programmers.co.kr/learn/courses/30/lessons/81301 #맞는 풀이 #include #include #include using namespace std; int solution(string s) { // 원하는 패턴의 문자열을 다른 문자열으로 치환 //regex_replace (대상, 정규표현식 객체, 치환 결과) s = regex_replace(s, regex("zero"), "0"); // "zero"는 다 "0"으로 바꾼다는 뜻 s = regex_replace(s, r..

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

어렵지는 않지만 그렇다고 단순하지도 않다. https://programmers.co.kr/learn/courses/30/lessons/77484 #맞는 풀이 #include #include using namespace std; vector solution(vector lottos, vector win_nums) { vector answer; int curWin = 0; // 일치하는 숫자 int curZero = 0; // 0인 숫자 int min, max = 0; //최저, 최고등수 for(int a : lottos){ if( a == 0){curZero++; continue; } // 당첨번호가 지워져있다면 ++ for(int b : win_nums){ if( a == b){ curWin++; con..

전화번호 목록, Python3 [프로그래머스]

문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제 ph..

피보나치 수, Python3 [프로그래머스]

문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 입출력 예 nreturn 3 2 5 5 입출력 예 설명 피보나치수는 0번째부터 0, 1, 1, 2, 3, 5..

728x90
반응형