HackerRank Algorithm - 1


Tags : WarmUp


HackerRank Warming Up ์ดˆ๋ณด ๋‚œ์ด๋„์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ญˆ-์šฑ ํ’€์–ด๋ณด๊ธฐ

์š”์•ฝ

Prepare/Algorithm/WarmUp

๋ฌธ์ œํ’€์ด ํ‰๊ท ์†Œ์š”์‹œ๊ฐ„ ๋‚œ์ด๋„ ์ฒด๊ฐ๋‚œ์ด๋„ ํ•ด๊ฒฐ๋ชปํ•œ๋ฌธ์ œ
11๊ฐœ ์•ฝ32๋ถ„ easy ๋Œ€๋ถ€๋ถ„ ์‰ฝ์ง€๋งŒ ํ•ด์ปค๋žญํฌ์˜ ์–‘์‹์ด ์–ด์ƒ‰ํ•จ 1๊ฐœ

๊ฐ ๋ฌธ์ œ๋ณ„ ํ’€์ด๋ฐฉ์‹ ์š”์•ฝ

์ˆœ๋ฒˆ ๋ฌธ์ œ ํ’€์ด๋ฐฉ์‹ ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค ๋น„๊ณ 
1 Solve Me First ๋‹จ์ˆœ๊ณ„์‚ฐ ๋™์ผ ๊ธฐ๋ณธ์˜ˆ์‹œ๋ฌธ์ œ
2 Simple Array Sum for๋ฌธ ์ž…๋ ฅ๊ณผ ๋™์‹œ์— ์—ฐ์‚ฐ ย 
3 Compare the Triplets for๋ฌธ + if์กฐ๊ฑด ๋™์ผ ย 
4 A Very Big Sum long์ž๋ฃŒํ˜• ๋™์ผ Overflow ์ฃผ์˜
5 Diagonal Difference 2์ค‘for๋ฌธ + if์กฐ๊ฑด ํ•˜๋‚˜์˜ for๋ฌธ์œผ๋กœ๋„ ๊ฐ€๋Šฅ ์ธ๋ฑ์Šค์˜ ํŠน์ง• ํ™œ์šฉํ•˜๊ธฐ
6 Plus Minus for๋ฌธ + if์กฐ๊ฑด ๋™์ผ ์ถœ๋ ฅ๊ฐ’์˜ ์ž๋ฃŒํ˜• ์ฃผ์˜ํ•˜๊ธฐ
7 Staircase for๋ฌธ + if์กฐ๊ฑด + OR์—ฐ์‚ฐ a[n-i]์—์„œ #์ฐ๊ธฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ€๋Šฅํ•˜๋„ค!
8 Mini-Max Sum 2์ค‘for๋ฌธ + if์กฐ๊ฑด sort() ์ •๋ ฌ ํ•จ์ˆ˜๊ธฐ๋Šฅ ์ ์‹œ์— ์‚ฌ์šฉํ•  ์ค„ ์•Œ๊ธฐ
9 Birthday Cake Candles sort() + for๋ฌธ + if๋ฌธ max๋ฅผ ์ฐพ๋Š” ํ•จ์ˆ˜ ์‹คํ–‰ ย 
10 Time Conversion substr()
stoi()to_string()
string์˜ ์ธ๋ฑ์Šค๋กœ ์กฐํšŒ string ๋ณต์Šตํ•„์š”!
11 Grading Students for๋ฌธ + if์กฐ๊ฑด ๋™์ผ ๋‚˜๋จธ์ง€์—ฐ์‚ฐ ์—ฐ์Šตํ•„์š”!

ํ•ด๊ฒฐ๋ชปํ•œ ๋ฌธ์ œ

Grading Students

  • ํ•„์š”๋กœ ํ•˜๋Š” ๊ฐ’์ด ๋ฌด์—‡์ด๊ณ , ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐํ• ์ง€ ๋ถ„๋ช…ํžˆ ์•Œ๊ธฐ
  • if๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด else๋กœ ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋“ค ์žŠ์ง€๋ง๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ

๋ฌธ์ œ ์ดํ•ด๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ํ–ˆ์ง€๋งŒ, ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ ๊ณ„์‚ฐ์— ์ƒ๊ฐ์ด ๊ผฌ์—ฌ๋ฒ„๋ฆฐ ํƒ“์— ํ’€์ง€ ๋ชปํ•œ ๋ฌธ์ œ.
ํ•˜๋‚˜ํ•˜๋‚˜ ์จ๋‚ด๋ ค๊ฐ€๋ฉฐ ๊ฐ ์ˆซ์ž๋งˆ๋‹ค ๊ณ„์‚ฐ์„ ๋ฐ˜๋ณตํ•˜๊ณ ์„œ์•ผ ์ดํ•ด๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

vector<int> gradingStudents(vector<int> grades) {
    vector<int> result(grades.size());
    
    for(int i = 0; i<grades.size(); i++)
    {
        if(grades[i] >= 38)
        {
            int remain = grades[i] % 5;
        
            if(remain >= 3)				// ๋‚˜๋จธ์ง€๊ฐ€ 3๋ณด๋‹ค ์ดˆ๊ณผ๋ƒ ์ด์ƒ์ด๋ƒ ํ—ท๊ฐˆ๋ฆผ
                result[i] = grades[i] + (5 - remain);	// 5-remain ์„ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•จ
            else
                result[i] = grades[i];
        }
        else
            result[i] = grades[i];			// ์•ž์„œ ์ ์šฉํ•œ else๋กœ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ฐฉ์˜คํ•จ
    }
    
    return result;
}