728x90
개미 군단
int solution(int hp) {
int jang = hp / 5;
hp -= 5 * jang;
int byung = hp / 3;
hp -= 3 * byung;
int answer = hp + jang + byung;
return answer;
}
모스부호 (1)
char MORSE_CODE[26][5] = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
string solution(string letter) {
string word = "";
string answer = "";
for(int i=0; i<letter.length(); ++i){
if(letter[i]==' ') {
for(int j=0; j<26; ++j) {
if(MORSE_CODE[j]==word) answer += (j+'a');
}
word = "";
}
else {
word += letter[i];
}
}
for(int j=0; j<26; ++j) {
if(MORSE_CODE[j]==word) answer += (j+'a');
}
return answer;
}
가위바위보
string solution(string rsp) {
string answer = "";
for(int i=0; i<rsp.length(); ++i){
if(rsp[i]=='2') answer += '0';
else if(rsp[i]=='0') answer += '5';
else answer += '2';
}
return answer;
}
구슬을 나누는 경우의 수
int solution(int balls, int share) {
long long answer = 1;
int nm = balls - share;
for(int i=0; i<nm; ++i){
answer *= balls-i;
}
for(int i=0; i<nm; ++i){
answer /= nm-i;
}
return answer;
}
- 위 코드로 테스트35만 실패한다,,, 아직 원인 못찾음
→ 해결
long long solution(int balls, int share) {
double answer = 1;
int nm = balls - share;
for(int i=nm+1; i<=balls; ++i){
answer *= i;
}
cout << answer;
for(int i=2; i<=share; ++i){
answer /= i;
}
return answer;
}
- $n!/(n-m)!*m!$ 여기서 순서만 바꾸었는데 성공…뭐가 문제였을까
- 아무래도 범위 문제였을 가능성?
✍🏻 알파벳 쉽게 넣기 → (숫자)+'a' : 그 순서의 알파벳을 가리킴 ex) 1+’a’ ⇒ ‘b’ / 0+’a’ ⇒ ‘a’
728x90
'📝 알고리즘 > Programmers' 카테고리의 다른 글
[PGS] Lv.0 (코딩테스트 입문) 11일차 문제 (0) | 2023.02.20 |
---|---|
[PGS] Lv.0 (코딩테스트 입문) 10일차 문제 (0) | 2023.02.20 |
[PGS] Lv.0 (코딩테스트 입문) 8일차 문제 (0) | 2023.01.26 |
[PGS] Lv.0 (코딩테스트 입문) 7일차 문제 (0) | 2023.01.26 |
[PGS] Lv.1 : 소수 만들기 (0) | 2023.01.16 |