SlideShare a Scribd company logo
간절히 원하면
SCCC가 도와준다
접수 중입니다.
팀 명 / 비밀번호를 받아가서 자신의 자리에 앉아 주세요!
프로그래밍 컨테스트란?
 정해진 시간 동안, 정해진 문제를 가장 빠르고 정확하게
푸는 것을 목표로 하는 대회.
 문제를 푼 개수, 문제를 푼 시간 순으로 페널티가 주어
져서 등수를 매긴다.
SOONGSIL COMPUTING CONTEST CLUB
SCCC 컨테스트
1. 숭실대 입구역 등반
시간을 분으로 바꿔주시면 됩니다.
if (H * 60 + M + W <= 10 * 60 + 30) puts("Walk");
else if (H * 60 + M + R <= 10 * 60 + 30)
puts("Run");
else puts(“망했어”);
코딩하기 편하게 H에 60을 곱해서 비교를 한다.
2. 넌 강해졌다! 걸어가!
문제 설명과 데이터에 문제가 있어서 죄송합니다…
매 초마다 궁극기를 맞았을 때의 죽인 적의 개수를 모두 세면
됩니다. (시작하자 마자(0초) 바로 궁극기를 맞는 경우도
있어서 대회중에 문제가 되었습니다)
For문을 돌면서 그 개수 중의 최대의 개수를 찾으면 됩니다.
3. 날로먹는 컴수과제
컴퓨터의 정수 저장 방식과 자료형의 이해를 물어보는 문
제였습니다!
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
=2147483647
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
=2147483648
=-2147483648
1
=-2147483647
ans++;
3. 날로먹는 컴수과제
4바이트가 작다고?
그럼 더 큰 걸 쓰면 되지!
int → long long
4바이트 → 8바이트
대입연산에 유의!
int main() {
int a; long long b=0;
scanf(“%d”,&a); b|=a;
printf(“%lld”,&b); return 0;
}
앞의 부호비트도 수 표현하는데 쓰
면 안되나?
int → unsigned int
4바이트 그대로, 하지만 32개의 비
트 사용
int main() {
int a;
scanf(“%d”,&a);
printf(“%u”,&a); return 0;
}
4. K번째 큰 원소 풀이
말 그대로 집합을 만들어 넣으면서 K번째 큰 원소를 for문을 이용해
찾으면 된다.
여기서 집합은 중복을 허용하지 않으니 그것을 처리해 주어야 한다
Ex) 1 2 2 3 3 5가 주어지면 집합은 1 2 3 5가 된다.
그래서 4번째 큰 숫자로 하면 1이 나와야 한다.
참고로 STL에 Set(집합)이 구현되어 있으니 그것을 쓰면 매우 편하
게 코딩 할 수 있다.
5. 성우의 과제 제출
이 문제는 마감시간에 최대한 높은 점수의 과제를
제출해야 하는 문제이다. 따라서 마감시간기준 오름차순
정렬 한 후에 min heap(cost가 작은 게 루트에
오도록)에 담는다. heap size() 는 day 가 되며, heap
size 와 dead_line 이 같은 경우에는 heap top 과 현재
들어와야 하는 과제의 점수를 비교하여 들어와야 하는
과제의 점수가 크면 heap pop 후에 새로운 과제를 push
해준다.
6. 영선이의 빵
문제를 해석해 보면
y = (k / l) * x(1 <= x <= n, 1 <= y <= m)
에서 격자 점을 찾는 문제이다.
격자 점은 x에서는 k의 배수만큼, y에서는 l의 배수만큼 생기니 둘 중 작은 값을 취해주면 된다.
예를 들면 기울기가 3/5 이며 방 크기가 (20, 30)이면 x는 5씩 갈 때마다 하나씩 격자 점이 생기
며, y는 3씩 갈 때마다 하나씩 격자 점이 생기니,
x에서는 4개, y에서는 10개가 생기는데 둘 중 작은 값인 4개 + (0, 0) 1개 5개가 된다.
여기서 주의할 점은 k / l이 기약분수가 아닐 수 있으니 기약분수로 나누어 주어야 한다.
만약 격자 점을 전부 세 나갈 경우 최악엔 10^18개를 샐 수 있으니 시간이 부족하게 된다.
7. 뻥치는 간식 행사
이 문제에서 뻥 치는 횟수(M)에 대해 일단 분석해 보면, 학생 수 보다
간식 번호가 많으니 사실 M번의 뻥을 친다고 했지만, 학생들이 원하지
않는(예를 들면 예제에서는 4와 같은 간식) 간식을 부르면 되니 M번
이하의 거짓말을 할 때 연속된 최대의 학생들의 수를 뽑으면 된다.
그리고 이 문제를 풀기 위해선 일단 한가지 성질을 알아야 된다. 만약
어떤 특정 구간(s, e)에 답이 존재 한다고 했을 때, 이 구간에 들어가
있는 간식의 종류는 M + 1개 이하야 된다는 것이다. 그래야 만이 특정
구간에 들어가 있는 다른 여러 간식들을 제외 시킬 수 있기 때문이다.
추가 문제 문의
2016회장 이성화(010-7963-6402)
2017회장 차건환(010-5037-5292)

More Related Content

PDF
쏙 알고스터디 01
PDF
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
PDF
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
PDF
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
PDF
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
PDF
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
PDF
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
PDF
[한양대 aloha] 프로그래밍 경진대회 문제_Beginner part
쏙 알고스터디 01
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[한양대 aloha] 프로그래밍 경진대회 문제_Beginner part

What's hot (20)

PDF
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
PDF
[KAIST - RUN] 프로그래밍 경진대회 문제
PPTX
세미나
PDF
[고려대 ALPS&ALKOR] 프로그래밍 경진대회 문제
PDF
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
PDF
2015 한양대학교 프로그래밍 경시대회 - beginner division
PDF
[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제
PDF
한양대학교 ALOHA - 봄내전대회_C언어반
PDF
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
PDF
한양대학교 ALOHA - 봄내전대회_알고리즘반
PDF
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제
PDF
[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 예선문제(아주대)
PDF
shake! 2016 예선 문제 풀이
PDF
2015 한양대학교 프로그래밍 경시대회 - advanced division
PDF
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
PDF
서울대학교 2017 SNUPC 문제 - Advanced
PDF
인하대 프로그래밍 경진대회 - 문제
PDF
한양대 2017 hcpc advanced division 문제
PDF
HI-ARC Number Theory
PDF
HI-ARC PS 102 Brute Force
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[KAIST - RUN] 프로그래밍 경진대회 문제
세미나
[고려대 ALPS&ALKOR] 프로그래밍 경진대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
2015 한양대학교 프로그래밍 경시대회 - beginner division
[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제
한양대학교 ALOHA - 봄내전대회_C언어반
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
한양대학교 ALOHA - 봄내전대회_알고리즘반
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제
[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 예선문제(아주대)
shake! 2016 예선 문제 풀이
2015 한양대학교 프로그래밍 경시대회 - advanced division
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
서울대학교 2017 SNUPC 문제 - Advanced
인하대 프로그래밍 경진대회 - 문제
한양대 2017 hcpc advanced division 문제
HI-ARC Number Theory
HI-ARC PS 102 Brute Force
Ad

Similar to [D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이 (16)

PDF
한양대 2017 hcpc advanced division 해설
PDF
2018 Ajou Programming Contest solutions
PPTX
2019 ppc answers
PDF
2019 고려대학교 프로그래밍 경시대회 풀이
PDF
서울대학교 2017 SNUPC 문제
PDF
인하대 프로그래밍 경진대회 - 문제풀이
PDF
프로젝트 보고서
PDF
이산치1번
PDF
2012 Ds B1 01
PPTX
SHAKE! 본선 해설
PDF
제 5회 전국 대학생 프로그래밍 동아리 연합 여름 대회 해설 슬라이드
PDF
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
PDF
2012 Dm A0 01 Pdf
PDF
2012 Dm A0 01 Pdf
PDF
과제 1,2,3
PDF
2012 Dm C2 03
한양대 2017 hcpc advanced division 해설
2018 Ajou Programming Contest solutions
2019 ppc answers
2019 고려대학교 프로그래밍 경시대회 풀이
서울대학교 2017 SNUPC 문제
인하대 프로그래밍 경진대회 - 문제풀이
프로젝트 보고서
이산치1번
2012 Ds B1 01
SHAKE! 본선 해설
제 5회 전국 대학생 프로그래밍 동아리 연합 여름 대회 해설 슬라이드
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
2012 Dm A0 01 Pdf
2012 Dm A0 01 Pdf
과제 1,2,3
2012 Dm C2 03
Ad

More from NAVER D2 (20)

PDF
[211] 인공지능이 인공지능 챗봇을 만든다
PDF
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
PDF
[215] Druid로 쉽고 빠르게 데이터 분석하기
PDF
[245]Papago Internals: 모델분석과 응용기술 개발
PDF
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
PDF
[235]Wikipedia-scale Q&A
PDF
[244]로봇이 현실 세계에 대해 학습하도록 만들기
PDF
[243] Deep Learning to help student’s Deep Learning
PDF
[234]Fast & Accurate Data Annotation Pipeline for AI applications
PDF
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
PDF
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PDF
[224]네이버 검색과 개인화
PDF
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
PDF
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
PDF
[213] Fashion Visual Search
PDF
[232] TensorRT를 활용한 딥러닝 Inference 최적화
PDF
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
PDF
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
PDF
[223]기계독해 QA: 검색인가, NLP인가?
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?

[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이

  • 1. 간절히 원하면 SCCC가 도와준다 접수 중입니다. 팀 명 / 비밀번호를 받아가서 자신의 자리에 앉아 주세요!
  • 2. 프로그래밍 컨테스트란?  정해진 시간 동안, 정해진 문제를 가장 빠르고 정확하게 푸는 것을 목표로 하는 대회.  문제를 푼 개수, 문제를 푼 시간 순으로 페널티가 주어 져서 등수를 매긴다.
  • 3. SOONGSIL COMPUTING CONTEST CLUB SCCC 컨테스트
  • 4. 1. 숭실대 입구역 등반 시간을 분으로 바꿔주시면 됩니다. if (H * 60 + M + W <= 10 * 60 + 30) puts("Walk"); else if (H * 60 + M + R <= 10 * 60 + 30) puts("Run"); else puts(“망했어”); 코딩하기 편하게 H에 60을 곱해서 비교를 한다.
  • 5. 2. 넌 강해졌다! 걸어가! 문제 설명과 데이터에 문제가 있어서 죄송합니다… 매 초마다 궁극기를 맞았을 때의 죽인 적의 개수를 모두 세면 됩니다. (시작하자 마자(0초) 바로 궁극기를 맞는 경우도 있어서 대회중에 문제가 되었습니다) For문을 돌면서 그 개수 중의 최대의 개수를 찾으면 됩니다.
  • 6. 3. 날로먹는 컴수과제 컴퓨터의 정수 저장 방식과 자료형의 이해를 물어보는 문 제였습니다! 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 =2147483647 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =2147483648 =-2147483648 1 =-2147483647 ans++;
  • 7. 3. 날로먹는 컴수과제 4바이트가 작다고? 그럼 더 큰 걸 쓰면 되지! int → long long 4바이트 → 8바이트 대입연산에 유의! int main() { int a; long long b=0; scanf(“%d”,&a); b|=a; printf(“%lld”,&b); return 0; } 앞의 부호비트도 수 표현하는데 쓰 면 안되나? int → unsigned int 4바이트 그대로, 하지만 32개의 비 트 사용 int main() { int a; scanf(“%d”,&a); printf(“%u”,&a); return 0; }
  • 8. 4. K번째 큰 원소 풀이 말 그대로 집합을 만들어 넣으면서 K번째 큰 원소를 for문을 이용해 찾으면 된다. 여기서 집합은 중복을 허용하지 않으니 그것을 처리해 주어야 한다 Ex) 1 2 2 3 3 5가 주어지면 집합은 1 2 3 5가 된다. 그래서 4번째 큰 숫자로 하면 1이 나와야 한다. 참고로 STL에 Set(집합)이 구현되어 있으니 그것을 쓰면 매우 편하 게 코딩 할 수 있다.
  • 9. 5. 성우의 과제 제출 이 문제는 마감시간에 최대한 높은 점수의 과제를 제출해야 하는 문제이다. 따라서 마감시간기준 오름차순 정렬 한 후에 min heap(cost가 작은 게 루트에 오도록)에 담는다. heap size() 는 day 가 되며, heap size 와 dead_line 이 같은 경우에는 heap top 과 현재 들어와야 하는 과제의 점수를 비교하여 들어와야 하는 과제의 점수가 크면 heap pop 후에 새로운 과제를 push 해준다.
  • 10. 6. 영선이의 빵 문제를 해석해 보면 y = (k / l) * x(1 <= x <= n, 1 <= y <= m) 에서 격자 점을 찾는 문제이다. 격자 점은 x에서는 k의 배수만큼, y에서는 l의 배수만큼 생기니 둘 중 작은 값을 취해주면 된다. 예를 들면 기울기가 3/5 이며 방 크기가 (20, 30)이면 x는 5씩 갈 때마다 하나씩 격자 점이 생기 며, y는 3씩 갈 때마다 하나씩 격자 점이 생기니, x에서는 4개, y에서는 10개가 생기는데 둘 중 작은 값인 4개 + (0, 0) 1개 5개가 된다. 여기서 주의할 점은 k / l이 기약분수가 아닐 수 있으니 기약분수로 나누어 주어야 한다. 만약 격자 점을 전부 세 나갈 경우 최악엔 10^18개를 샐 수 있으니 시간이 부족하게 된다.
  • 11. 7. 뻥치는 간식 행사 이 문제에서 뻥 치는 횟수(M)에 대해 일단 분석해 보면, 학생 수 보다 간식 번호가 많으니 사실 M번의 뻥을 친다고 했지만, 학생들이 원하지 않는(예를 들면 예제에서는 4와 같은 간식) 간식을 부르면 되니 M번 이하의 거짓말을 할 때 연속된 최대의 학생들의 수를 뽑으면 된다. 그리고 이 문제를 풀기 위해선 일단 한가지 성질을 알아야 된다. 만약 어떤 특정 구간(s, e)에 답이 존재 한다고 했을 때, 이 구간에 들어가 있는 간식의 종류는 M + 1개 이하야 된다는 것이다. 그래야 만이 특정 구간에 들어가 있는 다른 여러 간식들을 제외 시킬 수 있기 때문이다.
  • 12. 추가 문제 문의 2016회장 이성화(010-7963-6402) 2017회장 차건환(010-5037-5292)