-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[정수론] 9월 13일 #2
base: main
Are you sure you want to change the base?
[정수론] 9월 13일 #2
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#include <iostream>; | ||
#include <string>; | ||
|
||
using namespace std; | ||
|
||
|
||
|
||
int main() { | ||
|
||
int arr[26] = { 0 }; | ||
|
||
string str; | ||
cin >> str; | ||
|
||
for (int i = 0; i < str.length(); i++) { | ||
int index = str[i] - 65; | ||
arr[index]++; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. 'A'의 아스키코드가 65라는 것을 활용해서 인덱스를 지정해주신 것 너무 좋습니다👍👍 직접 'A'의 아스키코드를 찾아서 65라는 숫자로 코드를 작성해주셔도 좋지만, |
||
} | ||
|
||
|
||
int odd = 0; | ||
int odd_index; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p2. odd_index가 사용되고 있지 않습니다! 밑에서 odd의 개수를 세서 홀수 개수가 1개보다 많을 때를 if문으로 분류해주고 계신데 홀수 개수를 세는 부분에서 odd를 홀수 개수가 아니라 홀수 개인 알파벳으로 설정해주시면 추후에 if문 없이 한번에 홀수 개인 알파벳이 1개보다 많을 때를 구별해볼 수 있으실 것 같습니다😊 |
||
string sol = ""; | ||
bool flag = false; | ||
|
||
// Ȧ�� ���� ���� | ||
for (int i = 0; i < 26; i++) { | ||
if (arr[i] % 2 != 0) | ||
odd++; | ||
} | ||
|
||
// Ȧ���� 1�� �̻��̸� ���� | ||
if (odd > 1) { | ||
cout << "I'm Sorry Hansoo"; | ||
} | ||
|
||
else { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. if로 홀수가 1개 이상일 때와 아닐 때의 코드를 나눠서 작성해주셨는데요! odd가 1보다 클 때를 if문으로 감싸서 cout 해주신 뒤 return을 해주시면 else를 사용하지 않고도 코드가 문제 없이 돌아갈 것 같네요:) |
||
for (int i = 0; i < 26; i++) { | ||
if (arr[i] % 2 != 0) { | ||
odd_index == i; | ||
flag = true; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p2. flag가 이후에 사용되고 있지 않습니다! 백준에서 코드를 돌려보시고 작성하신 코드를 확인해보시면 코드를 실행하면서 발생하는 경고를 확인해보실 수 있을 거예요:) 이렇게 이후에 활용되지 않는 변수는 삭제해주시면 메모리 관리도 할 수 있으니 유의해주시면 좋을 것 같습니다! |
||
} | ||
|
||
} | ||
|
||
for (int i = 0; i < 26; i++) { | ||
for (int j = 0; j < arr[i] / 2; j++) { | ||
sol += i + 'A'; | ||
} | ||
} | ||
|
||
for (int i = 0; i < 26; i++) | ||
if (arr[i] % 2) | ||
sol += i + 'A'; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p1. 위에서 odd로 가운데에 올 문자를 지정할 수 있는 방법에 대해서 남겨드렸습니다! 이 방법을 활용하면 해주셨으니 굳이 같은 의미를 가지는 for문을 2번씩 돌면서 가운데에 올 문자를 찾지 않아도 될 것 같습니다😊 |
||
|
||
|
||
for (int i = 25; i >= 0; i--) { | ||
for (int j = 0; j < arr[i] / 2; j++) { | ||
sol += i + 'A'; | ||
} | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p2. 저희 튜터링에서는 클린코드 작성을 위해 입출력을 제외한 로직 부분은 함수화하는 것을 장려하고 있습니다! 팰린드롬을 생성하는 부분을 함수로 작성해보시면 좋을 것 같네요:) |
||
|
||
cout << sol; | ||
return 0; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#include <iostream> | ||
#include <string> | ||
#include <sstream> | ||
|
||
using namespace std; | ||
|
||
// ��Ŭ���� ȣ���� | ||
int gcdRecursion(int a, int b) { | ||
// a > b �� ��, a�� b�� �ִ������� ���� | ||
if (b == 0) { | ||
return a; | ||
} | ||
return gcdRecursion(b, a % b); | ||
} | ||
|
||
|
||
int main() { | ||
string str; | ||
cin >> str; | ||
|
||
string str1 = str.substr(0, str.find(':')); | ||
string str2 = str.substr(str.find(':') + 1); | ||
|
||
int n = stoi(str1); | ||
int m = stoi(str2); | ||
|
||
int gcd = gcdRecursion(n, m); | ||
cout << n / gcd << ":" << m / gcd; | ||
return 0; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
#include <iostream> | ||
#include <vector> | ||
#include <algorithm> | ||
#include <math.h> | ||
|
||
using namespace std; | ||
|
||
int main() { | ||
int count; | ||
cin >> count; | ||
|
||
int sum = 0; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. |
||
|
||
vector<int> v; | ||
int arr[8001] = { 0 }; | ||
|
||
for (int i = 0; i < count; i++) { | ||
int n; | ||
cin >> n; | ||
sum += n; | ||
v.push_back(n); | ||
arr[n+4000]++; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. 4000이 문제에서 주어지는 숫자 범위이니, 상수로 선언하고 사용하시면 더 편할거에요! |
||
|
||
} | ||
|
||
// ��� - �Ҽ��� ���� ù���ڸ� �ݿø� | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 제출하시면서 주석이 깨진 것 같아요! 확인부탁드립니다 |
||
double avg = ((double)sum) / count; | ||
avg = round(avg); | ||
if (avg == -0) { | ||
avg = 0; | ||
} | ||
cout << avg << "\n"; | ||
|
||
// �߾Ӱ� | ||
sort(v.begin(), v.end()); | ||
int med = v.at(v.size() / 2); | ||
cout << med << "\n"; | ||
Comment on lines
+36
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. 변수가 한 번 쓰이고 마니, 바로 리턴에 넣어서 한 줄로 합치면 어떨까요? |
||
|
||
// �ֺ� | ||
int stop = 0; | ||
int com; | ||
int common_value = 0; | ||
for (int i = 0; i < 8001; i++) { | ||
if (arr[i] > common_value) { | ||
common_value = arr[i]; | ||
} | ||
} | ||
for (int i = 0; i < 8001; i++) { | ||
if (arr[i] == common_value) { | ||
com = i-4000; | ||
stop++; | ||
} | ||
if (stop == 2) { | ||
break; | ||
} | ||
} | ||
Comment on lines
+40
to
+56
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. 너무 잘 구현해주셨어요! |
||
cout << com << "\n"; | ||
|
||
// ���� | ||
int rng = v.back() - v.front(); | ||
cout << rng; | ||
Comment on lines
+60
to
+61
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. |
||
return 0; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#include <iostream> | ||
|
||
using namespace std; | ||
|
||
|
||
// ��Ŭ���� ȣ���� | ||
int gcdRecursion(int x, int y) { | ||
// a > b �� ��, a�� b�� �ִ������� ���� | ||
if (y == 0) { | ||
return x; | ||
} | ||
return gcdRecursion(y, x % y); | ||
} | ||
|
||
int main() { | ||
// �Է� | ||
int x, y; | ||
cin >> x >> y; | ||
|
||
// x�� y�� �ִ����� ���ϱ� | ||
int gcd = gcdRecursion(x, y); | ||
|
||
cout << x + y - gcd; | ||
Comment on lines
+21
to
+23
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p3. |
||
|
||
return 0; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p3.
#include <-->;
처럼 include 뒤에는 ';'를 붙이지 않으셔도 괜찮습니다! (';'을 붙이시면 경고가 발생하네요)