BOJ - [Array - 2852 NBA λꡬ] - Silver IV π₯
https://www.acmicpc.net/problem/2852 μμ μ΅κ·Όλ€μ΄ μ¨λΌμΈ μ μ§μ λ¬Έμ λ€μ νλκ²μ κ²μ리 νμμ΄μ κ·Έλ°μ§ μ΄λ° μ€λ²μ λ λμ΄λμ λ¬Έμ λ μκ°μ΄ μ’ μκ°μ΄ 걸릴μ λλ‘ μ€λ ₯μ΄ λ§μ΄ λ¨μ΄μ§ κ² κ°λ€. μ‘°κΈλ λΆλ° ν΄μΌν λ― νλ€. π
λ¬Έμ
https://www.acmicpc.net/problem/2852
μ€λͺ
μμ μ΅κ·Όλ€μ΄ μ¨λΌμΈ μ μ§μ λ¬Έμ λ€μ νλκ²μ κ²μ리 νμμ΄μ κ·Έλ°μ§ μ΄λ° μ€λ²μ λ λμ΄λμ λ¬Έμ λ μκ°μ΄ μ’ μκ°μ΄ 걸릴μ λλ‘ μ€λ ₯μ΄ λ§μ΄ λ¨μ΄μ§ κ² κ°λ€. μ‘°κΈλ λΆλ° ν΄μΌν λ― νλ€. π
μ΄λ² λ¬Έμ λ₯Ό νλ©΄μ μμ±ν λ΄ μ½λμμ μ λ² λ¬Έμ μ²λΌ μ£ΌμκΉκ² μ΄ν΄λ³Όλ§ν κΈ°λ₯μ ν¬κ² μλ κ² κ°λ€. μμ€κ° κΈΈμ΄μ§κ» λλΉν΄μ μΌλΆλ₯Ό ν¨μν νμ¬ λ°λ‘ λΉΌλμλΆλΆλ§ μ μΈνκ³ λ§μ΄λ€.
#include <stdio.h>
int time_[100],home_sc=0,visitor_sc=0,win_t_home=0,win_t_vis=0,win_status=0,n;
// λμ μ μ₯λ³μ, 1λ²ν μ€μ½μ΄, 2λ²ν μ€μ½μ΄, 1λ²νμ΄ μ΄κΈ°κ³ μλ μκ°(λ¨μ : μ΄), 2λ²νμ΄ μ΄κΈ°κ³ μλ μκ°(λ¨μ : μ΄), νμ¬ μ΄κΈ°κ³ μλ ν λ²νΈ,λμ μν© μ΄ κ°―μ -> λͺ¨λ μ μλ³μ(Global Variable)λ‘ μ μΈν¨.
void compare(int i) //μ΄κΈ°κ³ μλ μκ°μ ꡬλ³νμ¬ μκ°μ λν΄μ£Όλ ν¨μ
{
if(i!=0) //첫λ²μ§Έ μΌμ΄μ€λ§ μ
λ ₯λ μνμμλ ν΄λΉν¨μλ₯Ό μ€ννμ§ μλλ€.
{
switch(win_status)
{
case 1: //μ΄λ² λμ μ κΉμ§ 1λ²νμ΄ μ΄κΈ°κ³ μμλ€λ©΄?
win_t_home += time_[i]-time_[i-1]; //μ΄κΈ°κ³ μλ μκ° κ³μ°ν μΆκ° (1λ²ν)
break;
case 2: //μλ 2λ²νμ΄ μ΄κΈ°κ³ μμλ€λ©΄?
win_t_vis += time_[i]-time_[i-1]; //μ΄κΈ°κ³ μλ μκ° κ³μ°ν μΆκ° (2λ²ν)
break;
}
}
}
int main() {
scanf("%d",&n); //μ΄ λμ νμλ₯Ό μ
λ ₯λ°μ.
for(int i=0; i<n; i++) //μ΄ λμ νμλ§νΌ μΌμ΄μ€ μ
λ ₯ λ°κΈ°.
{
int team,tmp1,tmp2; //λμ ν νλ²νΈ, λμ ν μκ°(λΆ,μ΄)
scanf("%d %d:%d",&team,&tmp1,&tmp2); //λμ ν νκ³Ό λμ μκ°μ μ
λ ₯λ°μ.
switch(team) //λ°©κΈ μ
λ ₯λ μΌμ΄μ€κ° μ΄λ€νμ λμ μΈμ§ ꡬλ³
{
case 1: //1λ² ν
time_[i] = tmp1*60 + tmp2; //λΆμ μ΄λ‘ λ°κΎΈμ΄ μ μ₯
compare(i); //μ΄κΈ°κ³ μλ μκ°μ ꡬλ³νμ¬ μΆκ°νκΈ°
home_sc++; //μ μ 1μ λμ
break;
case 2: //2λ² ν
time_[i] = tmp1*60 + tmp2; //λΆμ μ΄λ‘ λ°κΎΈμ΄ μ μ₯
compare(i); //μ΄κΈ°κ³ μλ μκ°μ ꡬλ³νμ¬ μΆκ°νκΈ°
visitor_sc++; //μ μ 1μ λμ
break;
}
if(home_sc>visitor_sc) //νμ¬ μ΄κΈ°κ³ μλ ν μ μ₯
win_status=1; //1λ²ν
else if(home_sc<visitor_sc)
win_status=2; //2λ²ν
else
win_status=0; //λμ
if(i==n-1) // μ΄λ²νμμ λ§μ§λ§ λμ μ μΌμ΄μ€κ° μ£Όμ΄μ§ κ²½μ° μ΄ κ²½κΈ°μκ°μμ λμ μκ°μ λΊ΄ λ§μ§λ§μΌλ‘ μ΄κΈ°κ³ μλ μκ°μ μΆκ°ν΄ μ£ΌκΈ°
{
if(home_sc>visitor_sc) //μ΅μ’
μ μΈ μ μλ‘ 1λ²νμ΄ μ΄κΈ°λ κ²½μ°
win_t_home += 48*60-time_[i];
else if(visitor_sc>home_sc) // μλ 2λ²νμ΄ μ΄κΈ°λ κ²½μ°
win_t_vis += 48*60-time_[i];
}
}
printf("%02d:%02d\n%02d:%02d",win_t_home/60,win_t_home%60,win_t_vis/60,win_t_vis%60);
//κ²°κ³Ό μΆλ ₯
return 0;
}
μ΄κ²μ΄ μ΄λ² λ¬Έμ λ₯Ό νλ©΄μ μμ±ν μμ€μ μλ³Έμ΄λ€.
μ€λ²λ¬Έμ μΉκ³ μμ€κ° κΈ΄κ²λΊ΄κ³ λ ν¬κ² νΉλ³ν¨μ λλμλ μμ κ²μ΄λ€.γ ‘_γ ‘;;
#include <stdio.h>
int time_[100],home_sc=0,visitor_sc=0,win_t_home=0,win_t_vis=0,win_status=0,n;
// λμ μ μ₯λ³μ, 1λ²ν μ€μ½μ΄, 2λ²ν μ€μ½μ΄, 1λ²νμ΄ μ΄κΈ°κ³ μλ μκ°(λ¨μ : μ΄), 2λ²νμ΄ μ΄κΈ°κ³ μλ μκ°(λ¨μ : μ΄), νμ¬ μ΄κΈ°κ³ μλ ν λ²νΈ,λμ μν© μ΄ κ°―μ -> λͺ¨λ μ μλ³μ(Global Variable)λ‘ μ μΈν¨.
void compare(int i) //μ΄κΈ°κ³ μλ μκ°μ ꡬλ³νμ¬ μκ°μ λν΄μ£Όλ ν¨μ
{
if(i!=0) //첫λ²μ§Έ μΌμ΄μ€λ§ μ
λ ₯λ μνμμλ ν΄λΉν¨μλ₯Ό μ€ννμ§ μλλ€.
{
switch(win_status)
{
case 1: //μ΄λ² λμ μ κΉμ§ 1λ²νμ΄ μ΄κΈ°κ³ μμλ€λ©΄?
win_t_home += time_[i]-time_[i-1]; //μ΄κΈ°κ³ μλ μκ° κ³μ°ν μΆκ° (1λ²ν)
break;
case 2: //μλ 2λ²νμ΄ μ΄κΈ°κ³ μμλ€λ©΄?
win_t_vis += time_[i]-time_[i-1]; //μ΄κΈ°κ³ μλ μκ° κ³μ°ν μΆκ° (2λ²ν)
break;
}
}
}
int main() {
...
}
μ΄κ²μ΄ compare ν¨μμ΄λ€. μλλ λ°λ‘ μ΄λ κ² λ³λμ ν¨μλ₯Ό λ§λ€μ΄μ μμ€λ₯Ό μ§€ κ³νμ μμλ€.
int main()
{
...
switch(team) //λ°©κΈ μ
λ ₯λ μΌμ΄μ€κ° μ΄λ€νμ λμ μΈμ§ ꡬλ³
{
case 1: //1λ² ν
time_[i] = tmp1*60 + tmp2; //λΆμ μ΄λ‘ λ°κΎΈμ΄ μ μ₯
compare(i); //μ΄κΈ°κ³ μλ μκ°μ ꡬλ³νμ¬ μΆκ°νκΈ°
home_sc++; //μ μ 1μ λμ
break;
case 2: //2λ² ν
time_[i] = tmp1*60 + tmp2; //λΆμ μ΄λ‘ λ°κΎΈμ΄ μ μ₯
compare(i); //μ΄κΈ°κ³ μλ μκ°μ ꡬλ³νμ¬ μΆκ°νκΈ°
visitor_sc++; //μ μ 1μ λμ
break;
}
...
}
κ·Έλ¬λ compareν¨μκ° μ¬μ©λ κ³³μ νμΈνλ©΄ λ΄κ° μ μ΄λ κ² λ§λ€μλμ§ μ§μν μ μλ€. home_scμ visitor_scλ 1λ²νκ³Ό 2λ²νμ μ μλ₯Ό μ μ₯νλ λ³μμΈλ° μ΄ μ μλ₯Ό μΉ΄μ΄νΈ νκΈ°μ μ compareν¨μ μμ μλ μμ μ΄ μ΄λ£¨μ΄μ ΈμΌνλ€. κ·Έλ¬κΈ°μλ ν¨μλ₯Ό μ¬μ©νμ§ μμΌλ©΄ λκ°μ μμ€λ₯Ό λ μΌμ΄μ€μ κ²½μ°μ λͺ¨λ μ§μ΄λ£μ΄μΌ νκΈ°λλ¬Έμ λ§€μ° λΉν¨μ¨μ μ΄κ³ , κ·ΈμΈμλ ν¨μλ₯Ό μ΄μ©νμ§ μλ ν¨μ¨μ μΈ λ°©λ²μ΄ μμκ±°λΌκ³ μκ°λμ΄μ§μ§λ§ λ΄κ° λ¬Έμ λ₯Ό νλ©΄μ κ·Έλλ§ ν¨μ¨μ μ΄λ©΄μ μκ³ κ° λλλ λ°©λ²μ ν¨μλ₯Ό λ³λλ‘ λ§λ€μ΄ λ°λ³΅μ μΈ μμ μ λ³λλ‘ λΉΌλ΄μ΄ λ§λλ κ²μ΄μλ€.
κ·ΈμΈμ κ° μμ€μ λν μ€λͺ μ μ ν μμ€μ νλνλ μ£Όμμ λ¬μ λμμΌλ―λ‘ κ΄μ¬μ΄ μμΌμ λΆλ€μ νλ² μ½μ΄λ³΄λ κ²λ μ’μ κ² κ°λ€.
κ²°κ³Ό λ§ν¬ : http://boj.kr/13564ed262734bf98d53f41795a6f043