#include<bits/stdc++.h>
using namespace std;
/*
609 : 문자열2 - 자가진단8
세 개의 단어를 입력받아 아스키코드(사전) 순으로 가장 먼저 나오는 단어를 출력하는 프로그램을 작성하시오.
각 단어의 길이는 1이상 10 이하이다.
입력 예
cat dog cow
출력 예
cat
*/
int main()
{
vector<string> v;
char a[104][104];
int i,k=0;
for(i=0; i<3; i++){
string st;
cin >> st;
v.push_back(st);
}
for(i=0; i<v.size(); i++){
if(v[i] < v[k]){
k=i;
}
}
cout << v[k];
sort(v.begin(),v.end());
cout << v[0];
return 0;
}
#include<bits/stdc++.h>
using namespace std;
/*
610 : 문자열2 - 자가진단9
5개의 문자열을 입력받아 문자열 크기(아스키코드) 역순으로 정렬하여 출력하는 프로그램을 작성하시오.
주어지는 문자열의 길이는 20자 미만이다.
입력 예
Jungol
Korea
information
Monitor
class
출력 예
information
class
Monitor
Korea
Jungol
*/
int main()
{
int i,j;
char t[104],a[104][104];
for(i=0; i<5; i++){
scanf("%s",a[i]);
}
//sort(a,a+5);
for(i=0; i<5; i++){
for(j=0; j<5; j++){
if(strcmp(a[i],a[j])>0){
strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
}
}
}
for(i=0; i<5; i++){
printf("%s\n",a[i]);
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
/*
610 : 문자열2 - 자가진단9
5개의 문자열을 입력받아 문자열 크기(아스키코드) 역순으로 정렬하여 출력하는 프로그램을 작성하시오.
주어지는 문자열의 길이는 20자 미만이다.
입력 예
Jungol
Korea
information
Monitor
class
출력 예
information
class
Monitor
Korea
Jungol
*/
bool com(string a, string b)
{
return a>b;
}
int main()
{
int i,j;
vector <string> v;
char t[104],a[104][104];
for(i=0; i<5; i++){
cin >> a[i];
string s(a[i]);
v.push_back(s);
}
sort(v.begin(),v.end(),com);
for(i=0; i<5; i++){
cout << v[i] << "\n" ;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
/*
618 : 구조체 - 자가진단6
5명의 이름과 키, 몸무게를 입력받아 이름순으로 정렬하여 출력하고,
몸무게가 무거운 순으로 정렬하여 출력하는 프로그램을 작성하시오.
몸무게는 소수점이하 1자리까지 출력한다.
입력 예
Lee 150 35.6
Kim 155 28.9
Sin 148 32.7
Jung 160 41.2
Park 165 38.7
출력 예
name
Jung 160 41.2
Kim 155 28.9
Lee 150 35.6
Park 165 38.7
Sin 148 32.7
weight
Jung 160 41.2
Park 165 38.7
Lee 150 35.6
Sin 148 32.7
Kim 155 28.9
*/
struct students
{
char irum[10];
int kee;
float mugae;
};
bool compare(struct students a ,struct students b){
return a.mugae<b.mugae;
}
bool compare2(struct students a ,struct students b){
//????
return strcmp(a.irum, b.irum) < 0;
}
int main()
{
int i;
struct students s[5];
for(i=0; i<5; i++){
scanf("%s %d %f",s[i].irum,&s[i].kee,&s[i].mugae);
}
sort(s,s+5,compare2);
for(i=0; i<5; i++){
printf("=name= %s %d %g\n",s[i].irum,s[i].kee,s[i].mugae);
}
sort(s,s+5,compare);
for(i=0; i<5; i++){
printf("=mugae= %s %d %g\n",s[i].irum,s[i].kee,s[i].mugae);
}
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
/*
617 : 구조체 - 자가진단5
5명의 이름과 키를 입력받아 키가 가장 작은 사람의 이름과 키를 출력하는 프로그램을 작성하시오. 이름은 20자 이하이다.
입력 예
Park 175
Lee 180
Choo 185
Son 193
Kim 188
출력 예
Park 175
*/
typedef struct s{
int num;
char name[10],sub[10];
int score[100];
}Student;
int main()
{
int m[12],n=5,i,p=0,q=99990;
//struct s stu[100];
Student stu[100];
//scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %d",stu[i].name,&stu[i].num);
}
for(i=0;i<n;i++)
{
if(q>stu[i].num){
q=stu[i].num;
p=i;
}
}
printf("%s %d",stu[p].name,stu[p].num);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 형성평가2
두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오.
단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다.
입력 예
12.0 34.789
출력 예
2
*/
int main()
{
float a,b,c,d;
int o,n,z=0;
scanf("%f %f",&a,&b);
c=sqrt(a);
d=sqrt(b);
if(c>d){
o=(int)floor(c);
n=(int)ceil(d);
printf("o = %d n = %d \n", o, n);
for(int i=n;i<=o;i++){
z ++;
}
}
if(c<d){
o=(int)ceil(c);
n=(int)floor(d);
printf("o = %d n = %d \n", o, n);
for(int i=o;i<=n;i++){
z ++;
}
}
printf("1 : %d\n",z);
printf("2 : %d",abs(o-n) + 1);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 형성평가4
정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)
입력 예
10
출력 예
1024
*/
int main()
{
int n,x=1;
scanf("%d",&n);
/*
for(int i=0;i<n;i++){
x=x*2;
}*/
x = pow(2,n);
printf("%d",x);
return 0;
}
#include<stdio.h>
long long k;
long long Lan[20000]; //원소는 초기화 됨.
long long div(long long len) //len로 자르기.
{
long long sum = 0;
for(int i=0; i<k; i++)
{
sum += (Lan[i]/len);
}
return sum;
}
int main(void)
{
long long n;
long long max = 0;
scanf("%lld %lld", &k, &n);
for(int i=0; i<k; i++)
{
scanf("%lld", &Lan[i]);
if(max<Lan[i])
{
max = Lan[i]; //최대 원소값 찾기
}
}
long long s = 1;
long long e = max; //mid의 범위를 1~최대 원소값까지로 고정.
long long mid;
long long res;
long long res2 = -1;
while(s<=e)
{
mid = (s+e)/2;
res = div(mid); //res는 조각의 개수.
//
if(res >= n)
{
if(res2 < mid) {
res2 = mid;
}
s=mid+1;
}
else
{
e=mid-1;
}
}
printf("%lld\n", res2);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
/*
함수3 - 형성평가1
자연수 N을 입력받아 1부터 N까지 출력을 하되 n-1번째 값은 n번째 값을 2로 나눈 몫이 되도록 하는 프로그램을 작성하시오.
*/
void f(int n){
if(n == 0) return;
f(n/2);
printf("%d ", n);
}
int main()
{
int n;
scanf("%d", &n);
f(n);
return 0;
}