본문 바로가기

C++

(69)
[코드트리] 야바위 https://www.codetree.ai/missions/5/problems/ya-rock?utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 뭔가 코드를 짜고 올리기만 했는데 이제 간단하게라도 주석을 달아줘야겠다. 일할 때도 전임자가 주석 안달아놓으면 답답하고 달아놓은게 있으면 굉장히 편했는데,, 나도 좀 더 습관적으로 달 수 있게 노력해야겠다. 3개의 종이컵이기에 3번의 for문을 돌리고 그안에서 기록해둔 야바위를 다시 반복해주었다. #include #include using name..
[코드트리] 팰린드롬 수 찾기 https://www.codetree.ai/missions/5/problems/find-the-number-of-palindrome?utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 팰린드롬 수는 결국 자릿수마다 저장하고 양쪽 끝부터 같은지 비교하면 된다. 나는 각 숫자를 배열에 저장하고 다시 값을 체크하는 식으로 했는데, 코드트리의 해설은 그냥 값을 거꾸로 저장하고 둘이 같은지 아닌지 체크하는 식으로 진행했다. 내 풀이보다 훨씬 간결하고 보기 좋았다. #include using name..
[코드트리] 빙산의 일각 2 https://www.codetree.ai/missions/5/problems/the-tip-of-the-iceberg-2?utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 어떻게 체크할지 의문이였는데, 그냥 flag를 사용해서 0이면 cnt++ 해주고 이전에도 있었다면 계속해서 다음칸을 체크해주는 형식으로 진행하였다. flag를 사용하지 않고 전의 값과 비교하면 됐을텐데, 0번 인덱스를 예외처리 해주지 않고 이 방법을 택했다.. #include #include using namespac..
[코드트리] 등차수열 https://www.codetree.ai/missions/5/problems/arithmetic-sequence?utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 등차수열,, 문제인데 a1, a2, a3가 있을 때 a1 + a3 = a2 * 2를 기억못했다 그래서 뺀 값이 같다라고 구해야 하나 싶었다. 그리고 뭔가 문제가 어렵다기보다 문제를 잘못 읽는 경우가 많은 것 같다. 좀 ,,제대로 읽고 풀어야 할 필요가 있지 않을까 싶다. #include #include using namespa..
[코드트리] 정보에 따른 숫자 2 https://www.codetree.ai/missions/5/problems/number-based-on-information-2?utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 양 옆 칸을 하나씩 검사해서 S와 N의 유무를 체크하는 식으로 작성하였다. 입력으로 받은 S와 N의 위치를 배열에 저장해두고 특정 위치에서 모든 값과의 거리를 비교하는 완전탐색을 통해서도 풀이가 가능하다. getN과 getS로 나눠서 작성하였는데 사실상 차이가 없는 수준이기에 하나의 함수로 작성하고 N과 S를..
좌표와 배열 착각하지 않기 좌표는 위로 올라갈수록 y가 커지지만,, 배열에서는 그 값이 작아진다. 정확히는 깊어질수록 커진다. 그런데 좌표 문제를 자꾸 배열로 풀면 한참 반대로 푼다. 문제를 풀 때 값은 같고 부호만 반대이길래 한참 찾았다,,
연속 부분 수열 동일한 숫자가 나왔을 때의 연속 부분 수열 i가 0일때를 먼저 조건에 걸지 않으면, map[i] != map[i-1]에서 runtime error가 난다. #include #include using namespace std; int maxCnt = -21e8, map[1000]; int main() { int n, cnt = 0; cin >> n; for(int i=0; i> map[i]; if(i == 0 || map[i] != map[i-1]){ cnt = 1; } else cnt++; maxCnt = max(maxCnt, cnt); } cout
겹치는 지점 구하기 지점을 구하는 법과 구간을 구하는 법은 약간의 차이가 있다. 예를 들어 2,5 에서 5,8의 겹치는 지점은 5부분이다. 그러나 구간을 구한다고 하면 겹치는 구간은 없다. 따라서 지점을 구하는 문제면 (x1, x2) x1부터 x2까지 카운팅 해야하고 구간을 구하는 문제라면 x1부터 x2-1까지 카운팅해야 한다.
진법 전환(진수 to 진수) 10진수에서의 n진수로 전환은 아래와 같이 진행할 수 있다. #include using namespace std; int main() { int N, j, index = 0; int jin[100] = {0,}; cin >> N >> j; while(1){ if(N =0; i++){ cout > a >> b; cin >> n; //10진수 변환 for(int i=0; n.length(); i++){ num10 = num10 * a + (n[i] - '0'); } // 다시 b진수로 변환 int jin[100] = {0, }, index = 0; while(1)..
날짜와 시간 차이 계산하기 만약 1시 40분 부터 6시 45분까지의 지난 분을 계산할 경우 6시 45 - 1시 40이 아닌 0부터 6시 45를 구하고 0부터 1시 40을 구해서 그 값을 빼주는 것이 코드가 훨씬 간결해진다. 날짜도 마찬가지로 1월 1일에서 시작하여 각 날짜까지 총 몇 일이 있는지를 계산하여 그 차이를 계산하는 식으로 진행하는 것이 훨씬 간결하게 코드를 작성할 수 있다.