본문 바로가기

프로그래머스

(37)
[프로그래머스 Lv 1, Python 3] 개인정보 수집 유효기간 문제 : 개인정보 수집 유효기간 풀이 방법 월 마다 일 수가 28일로 고정되어 있으니 일 단위로 계산을 하기가 실제 날짜 단위보다 쉽게 할 수 있다. 일 단위로 계산 해야할 날짜를 쪼개서 개인정보 날짜랑 비교를 하면 된다. 소스 코드 def solution(today, terms, privacies): answer = [] # terms dict privacy_cat_dict = dict() for i in terms: i = i.split() privacy_cat_dict[i[0]] = i[1] # {'A': '6', 'B': '12', 'C': '3'} today_date = trans_date(today.split('.')) # 679551 for i, privacy in enumerate(priv..
프로그래머스 PCCE 모의고사 1회 문제 코드 정답 풀이 내일 프로그래머스 PCCE시험을 신청해놨는데 파이썬은 손땐지 2년이 넘어서 거의 백지상태라 약간 긴장도 되고 하네요. 그래서 미리 모의고사를 해봤는데 C++로는 바로 풀 수 있겠는데 파이썬 메소드가 기억이 안나서 기억나는걸로만 풀었네요. 내일 9시에 하는데 잘 풀 수 있으면 좋겠습니다! 디버깅 1 num1 = 100 num2 = 200 # 출력 코드 print(num1 + num2) 빈칸 채우기 1 # 입력을 받는 코드입니다. 수정하지 말아주세요. num = int(input()) if num > 0: print("양수입니다") elif num == 0: print("0입니다") else: print("음수입니다") 빈칸 채우기 2 answer = 0 for num in range(10, 101, 2):..
[프로그래머스 Level 1, C] 수박수박수박수박수박수? 문제 : 수박수박수박수박수박수? 풀이 방법 stdbool.h 헤더파일로 c언어에서 bool을 true, false값으로 나타낼 수 있게 하였고 이것으로 flag변수를 만들어서 번갈아가며 "수"와 "박"을 넣을 수 있게 만들었다. strcat는 문자열 뒤에 문자열을 붙일 수 있게 하는 함수인데 char*에 붙일 수 있다. 이렇게만하고 말록 사이즈는 그냥 sizeof(char)로 했더니 덤프 오류가나서 어떻게 해야할까 싶었는데 char* answer = (char*)malloc(800000)으로 한 이유는 char의 사이즈가 8이고 n은 10,000이하의 자연수이라서 8 * 10000으로 생각했는데 잘 돌아가서 그냥 썼다 소스 코드 #include #include #include #include char* ..
[프로그래머스 Level 2, C++] 소수 찾기 문제 : 소수 찾기 풀이 방법 조합과 순열을 적절히 섞어야하며 자릿수도 신경 써야하므로 for문 안에 do while (next_permutation)을 넣었다. 프로그래머스 소수 찾기 11번 케이스만 오답이 나서 뭔가 했는데 numbers를 sort하지 않아서 오류가 났던 것이다. 경우의 수를 전부 체크하고 나면 01과 1은 같은 숫자로 치므로 0도 제거 한 다음, 중복되는 숫자를 제거해서 소수를 체크하면 끝이다 소스 코드 #include #include #include using namespace std; bool isPrime(int& i) { for(int u = 2; u
[프로그래머스 Level 1, Java] 평균 구하기 문제 : 평균 구하기 풀이 방법 배열의 요소를 다 더한 후 배열의 길이만큼 나누면 된다 소스 코드 class Solution { public double solution(int[] arr) { double answer = 0; for(int i : arr) answer += i; return answer / arr.length; } }
[프로그래머스 Level 1, Java] 정수 제곱근 판별 문제 : 정수 제곱근 판별 풀이 방법 n이 어떤 양의 정수 x의 제곱인지 판별하려고 하니까 n의 제곱근은 양의 정수이면 된다. Math.sqrt(n)을 1로 나누었을 때 나머지가 0이면 정수이다 소스 코드 class Solution { public long solution(long n) { if(Math.sqrt(n) % 1 == 0) return (long)Math.pow(Math.sqrt(n) + 1, 2); else return -1; } }
[프로그래머스 Level 2, C++] 최댓값과 최솟값 문제 : 최댓값과 최솟값 풀이 방법 if else 문으로 숫자일 경우를 배열에 넣고 최댓값과 최솟값만 구해주면 된다 소스 코드 #include #include #include using namespace std; string solution(string s) { string answer = ""; vector arr; string temp; for(char & c : s) { if(c == '-' || c != ' ') { temp.push_back(c); } else if (c == ' ') { arr.push_back(stoi(temp)); temp.clear(); } } arr.push_back(stoi(temp)); answer.append(to_string(*min_element(arr.begi..
[프로그래머스 Level 2, C++] 가장 큰 수 문제 : 가장 큰 수 풀이 방법 처음에는 벡터를 하나 만들고 순열구하는 함수로 전부 넣은 다음 최대값을 비교하는 방법으로 풀었는데 테스트 케이스는 정답으로 나왔지만 제출할 때 시간초과라는 뭐같은 상황이 나와서 뭐 없나 생각하다가 그냥 숫자 앞뒤로 비교만 해도 되나 싶어서 해봤는데 정답으로 나와서 다행이었다 근데 11번 테스트 케이스에서 막혀서 질문하기를 봤는데 0일경우 0하나만 나와야한대서 그렇게 해주니 정답이었다 이번에 람다식 공부도 하고 재밌었다 소스 코드 #include #include #include #include using namespace std; string solution(vector numbers) { vector arr(numbers.size()); // numbers벡터에서 arr벡..