일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- string 메소드
- 시간복잡도
- scanf
- 2557
- getline
- 자료구조
- 프레임워크와 라이브러리의 차이
- Django Nodejs 차이점
- Django란
- 입출력 패턴
- 입/출력
- Django의 편의성
- string 함수
- 이분그래프
- 표준 입출력
- 장고란
- 엑셀
- vscode
- 매크로
- correlation coefficient
- 알고리즘 공부방법
- 연결요소
- c++
- 백준
- UI한글변경
- 구조체와 클래스의 공통점 및 차이점
- double ended queue
- k-eta
- EOF
- iOS14
- Today
- Total
목록알고리즘/백준풀이7. 수학 (17)
Storage Gonie
문제 풀이 자세한 풀이 : # C++(나의 풀이) - 확장성이 용이하지만 조금 코드가 길어지는게 단점. #include #include using namespace std; string change2to8(string s) { int result = 0; for (int i = 0; i > s; string ans; int r = s.size() % 3; // 길이를 3으로 나눈 나머지가 0이 아닌경우 먼저 그 만큼만 떼서 변환하기 if(r != 0) ans.append(change2to8(s.substr(0, ..
문제 풀이 자세한 풀이 : # C++(나의 풀이) #include using namespace std; int main() { string N; int B; cin >> N >> B; int result = 0; // 초기화 꼭해주기 for (int i = 0; i > b; for (int i=0; i
문제 풀이 자세한 풀이 : # C++(나의 풀이) - 나머지를 스택에 저장했다가 역순으로 꺼내는 방식을 사용하였고, 10 이상의 나머지에 대해서 A, B, C, ... 를 출력해줘야 하는 것은 printf("%c") 를 이용하여 해결하였음. #include #include using namespace std; int main() { int N, B; scanf("%d %d", &N, &B); stack st; // B로 나눈 나머지를 스택에 저장하는 부분 while(N != 0) { st.push(N % B); N = N / B; } // 스택에서 나머지를 꺼내주며 출력하는 부분 while(!st.empty()) { if (st.top() >= 10) printf("%c", st.top() + 55); ..
문제 풀이 자세한 풀이 : - N개의 수가 주어지면 2개씩 짝지어서 각각의 GCD를 구하여 모두 더하는 문제 - n이 1 ~ 100의 범위이고, n개의 수의 범위는 1 ~ 1,000,000인데, n개인 수들을 2개씩 짝지어 만드는 모든 경우의 수는 n(n-1) / 2 이다. 그러면 이 짝에서 n(n-1) / 2개의 최대공약수들이 나오는데 그 수는 1 ~ 1,000,000의 범위를 가지므로 총 합의 최대범위는 100*99 / 2 * 1,000,000 = 4,950,000,000(49억)이다. 이는 int형의 표현범위 +-21억 을 넘고, unsigned int형의 표현범위 +42억을 넘어서는 값으로 long long 형을 사용해야 한다.(long long 형의 저장범위는 +-900경) # C++ #incl..
문제 풀이 자세한 풀이 : - A, B는 1 ~ 45,000 이므로 둘 다 최대로 45,000 일 때 A x B = 2,025,000,000 (20억) 이므로 int형의 저장범위를 벗어나지 않기 때문에 자료형은 크게 신경쓰지 않아도 된다. # C++ #include using namespace std; int getGCD(int a, int b) { if (b == 0) return a; else return getGCD(b, a%b); } int main() { int T; cin >> T; for (int test_case = 0; test_case > a >> b; int gcd = getGCD(a, b); // 최대공약수 : 유클리드 ..
문제 풀이 자세한 풀이 : - 최소공배수를 구할 때 A, B는 10,000 이하의 수 라고 하였으므로, 둘 다 최대로 10,000 일 때 A x B = 100,000,000 (1억) 이므로 int형의 저장범위를 벗어나지 않기 때문에 자료형은 크게 신경쓰지 않아도 된다. # C++ #include using namespace std; int getGCD(int a, int b) { if (b == 0) return a; else return getGCD(b, a%b); } int main() { int a, b; cin >> a >> b; int gcd = getGCD(a, b); // 최대공약수 : 유클리드 호제법 사용 int lcm = a*b/gcd; // 최소공배수 : gcd x lcm = A x B..