전체 글 68

[프로그래머스] 약수의 개수와 덧셈, 3진법 뒤집기

안녕하세요! 오늘은 프로그래머스의 약수의 개수와 덧셈, 3진법 뒤집기 두문제를 풀었습니다! 둘다 문제가 간단해 한번에 포스팅하려고 합니다! ㅎㅎ 1. 약수의 개수와 덧셈 약수의 개수와 덧셈 문제입니다. 우선 약수의 개수를 구해야하죠? 약수의 개수를 구하는 함수를 구현하였는데요. 약수를 찾는 법은 간단하게는 모듈로 연산자를 이용해서 구할수 있는데요! 자신보다 작거나 같고 1보다 같거나 큰 수 중 모듈로 했을때 0이면 약수입니다! 이렇게 함수를 만들고 for문 내부에서 if-else문으로 answer에 더할지 뺄지 결정하면 됩니다! #include #include #include int calcFactorCount(int number) { int result = 0; for (int i = 1; i

[프로그래머스] 폰켓몬, 실패율

안녕하세요! 오늘은 폰켓몬과 실패율 두 문제를 풀어보았습니다! 나날이 벡터 사용법에 익숙해지고 있는듯하네요! ㅎㅎ 폰켓몬은 문제자체가 간단하죠? 등장한 종(부여된 숫자)과 size/2중 작은거 고르면 되는 문제였습니다! 실패율은 쪼오오오끔 어려웠는데요! map, pair, sort쓸줄 알면 쉽게 풀수 있는 문제였습니다!(이상하게 해쉬관련은 문제푸는데 오래걸리더라구요 ㅠㅠ 아직 구력이 부족한가 봅니다 ㅠㅠ) 음 cmp를 주석과같이 람다식으로 해도 되는데 보기좋게 함수로 했습니다! 레벨1 문제는 알고리즘을 잘 알고 있다기 보다는 역시 그냥 stl잘쓰느냐 문제가 더 많은듯 합니다! iterator가 안익숙하시면(익숙해지길 바래요!) for문 주석 쳐놓은 부분처럼 쓰셔도 무관합니다! 그리고 int 연산해서 do..

[자료구조] 배열

안녕하세요! 오늘은 배열에 대해서 알아볼텐데요! 후.. C는 배열과 포인터 그리고 메모리만 잘쓰면 정말 날라다닌다고 말할 수 있을거라고 생각하는 사람중 한명입니다! 아래 첨부된 예제코드를 보면서 같이 따라해보셔도 좋습니다! 배열은 허접한 위의 그림처럼 연속된 메모리 공간이라고 생각하시면 편할듯합니다! 그러므로 시작주소를 알고있다면 어디든 무려 O(1)에 접근 가능합니다! 굉장히 빠르죠? // array int intArray[11] = {0,}; // Random access is possible because the array data is stored sequentially // in the logical and physical memory. // access O(1) int i = 0, j = 0;..

[프로그래머스] 코딩테스트 연습 탐욕법(Greedy) 체육복

안녕하세요! 오늘은 프로그래머스 레벨1문제 체육복 문제를 풀어보았습니다! 이번에도 정렬이 들어가 알고리즘을 인클루드해서 사용했습니다! 흠... 이번문제는 이상하게 안풀려서 고생을 좀 했는데요! 바로 윗줄에서 말씀드린 정렬이 없어서 생긴 문제였습니다! 정렬이 되지 않아 최대한으로 빌릴수 있는 체육복 수가 아니였던 것으로 결론이 났습니다! 다들 문제 푸실때 예외상황에 대한 인지를 정렬과 관련해서 한번 더 생각하는것도 좋은 방법일 듯합니다! 나머지는 그냥 일반적인 문제 풀이 방법이였습니다! 그리고 이 문제가 그리디 알고리즘이랑 관련이 있는지 잘 모르겠네요 ㅎㅎ...(제가 초보라서 그런듯합니다 ㅠㅠ) #include #include #include using namespace std; int solution(i..

[프로그래머스] 코딩테스트 연습 완전탐색 모의고사

안녕하세요! 오늘은 프로그래머스 레벨1 문제 모의고사를 풀어보았습니다! 완전탐색이긴한데 그냥 for문 돌리면서 쭉 값 비교만하면 되는 거라 for문 문제같네요! 수포자 3명 테이블 만들어서 for문으로 풀어보았습니다! #include #include using namespace std; vector solution(vector answers) { int spjrepeat[3][10] = {{1,2,3,4,5,}, {2,1,2,3,2,4,2,5,}, {3,3,1,1,2,2,4,4,5,5}}; int res[3] = {0,}; vector answer; int size = answers.size(); for(int i = 0; i < size; i++){ if(spjrepeat[0][i % 5] == ans..

[자료구조] 시작합니다!

안녕하세요! 앞으로 자료구조에 대해서도 포스팅 해볼 예정입니다! 자료구조는 고민을 좀 해봤는데요..! 흠 그래도 unmanagement language로 하는게 좋지 않을까하여! C/C++로 해볼 예정입니다! 흠 C에서는 이렇게 접근할 수 있는 것을 C++로는 이렇게 접근할 수 있구나 이런 느낌??? 클래스 유무 차이 아니면 C로 구현한 것을 간단하게 STL을 써서 쉽게 사용하는 법! 차이점 같은 것을 볼 예정입니다! 다음 포스팅에서는 배열부터 시작하는게 좋을듯합니다! C에서 다들 배열에 대해서는 많이들 접하셨으니 편하게 따라오실 수 있을것으로 예상됩니다! 다음에 뵙겠습니다!

[프로그래머스] 코딩테스트 연습 정렬 K번째수

안녕하세요! 오늘은 프로그래머스 K번째수 문제를 풀어보았습니다! 이전 포스팅이랑 마찬가지로 algorithm에 있는 sort func을 이용해서 문제를 해결해 보았습니다! for문을 이용해서 cuttedArray를 만들어서 그 Array를 정렬하고 거기에서 k번째 수를 answer 벡터에 push_back해주는 것으로 간단하게 문제를 풀 수 있습니다! 여려 방법으로 문제를 접근할 수 있을것 같네요 다들 한번씩 다른 방법으로 도전해보는 것도 좋아 보입니다! #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; int size = commands.size(); f..

[프로그래머스] 코딩테스트 연습 해시 완주하지 못한 선수

안녕하세요! 오늘은 프로그래머스 완주하지 못한 선수를 풀어 보았는데요! 이게 효율성 테스트도 있어서 상당히 오래걸릴뻔했는데 algorithm 사용해서 풀었습니다. 사실 string sort 구현할까 고민을 깊이 하다가 말았거든요 ㅎㅎ 구현하는 방법을 서술하자면 우선 오버레이터 재정의해서 string 비교하는 방법을 만들려했습니다. 비교방법은 c_str로 char * 로 변환후 앞글자부터 크기비교하는 방식으로 진행할려했습니다. 귀찮음에ㅠㅠ sort도 나중에 알고리즘 따로 올리도록하겠습니다! 이 문제에서 버블소트 머지소트 힙소트 퀵소트 등등 다해보고 싶었으나 귀찮음이 ㅎㅎㅎ... 죄송합니다! 대신 다음에는 소트 알고리즘 정리해서 올려보도록 하겠습니다! 간단하게 풀린 코드 보시죠! 우선 소트후 for문을 돌리..

[프로그래머스]코딩테스트 연습 Summer/Winter Coding(~2018) 소수 만들기

안녕하세요! 오늘은 프로그래머스 소수만들기를 풀어봤습니다! 레벨 1인데 30분이나 걸려 버렸네요 아직 초보인가봐요 ㅠㅠㅠ 우선 소수인지 확인하는 함수는 굉장히 쉽습니다! 보통 자기와 1을 제외한 수로 나눴을때 딱떨어지지 않으면 소수인데요! 굳이 다나눠볼 필욘없고 자기/2 + 1 까지만 나눠봐도 확인이 가능합니다! 다들 이유는 아실거라고 생각할게요! 그리고 재귀함수를 이용해서 중복없이 숫자를 만들어야하는데요 이부분에서 자꾸 에러가 발생해 오래걸렸습니다 ㅠㅠㅠ 원래는 함수 인자도 두개였는데 제가 능력이 모자라 4개까지 늘어버렸네요 ㅠㅠㅠ 벡터도 사실 포인터로 가져가는게 좋지만 귀찮아서... ㅎㅎ 죄송합니다! 코드 한번 같이 보시죠! #include #include using namespace std; vec..

[프로그래머스] 없는 숫자 더하기, 음양 더하기, 내적

오늘은 여러문제를 풀어보려고 합니다! 문제가 너무 쉬워서 한번에 여러개를 풀어버렸거든요! 총 세문제이지만 푸는데 10분도 안걸렸습니다! 다들 손풀기로 한번씩 해보시는거도 좋을듯 합니다! 없는 숫자 더하기 #include #include using namespace std; int solution(vector numbers) { int answer = 45; int size = numbers.size(); for(int i = 0; i < size; i++){ answer -= numbers[i]; } return answer; } 음양 더하기 #include #include using namespace std; int solution(vector absolutes, vector signs) { int a..