top of page

게시판 게시물

로그아웃하세요
2022년 12월 20일
In 소스 코드 제출
import java.util.*; class Day{ private String work; public void set(String work) { this.work = work; } public String get() { return work; } public void show() { if(work==null) System.out.println("없습니다."); else System.out.println(work + "입니다."); } } class Main{ public static void main(String[] args) { int choic,day; String work; Scanner sc=new Scanner(System.in); Day[] april = new Day[30]; for(int i=0;i<april.length; i++) april[i] = new Day(); System.out.println("이번달 스케쥴 관리 프로그램."); for(;;) { System.out.println("할일 입력(입력:1, 보기:2, 끝내기:3) >>"); choic = sc.nextInt(); if(choic==1) { System.out.println("날짜(1~30)?"); day=sc.nextInt(); System.out.println("할일(빈칸없이입력)?"); work = sc.next(); april[day].set(work); } if(choic==2) { System.out.println("날짜(1~30)?"); day= sc.nextInt(); System.out.print(day + "일의 할 일은 "); april[day].show(); } if(choic==3) { return; } } } }
0
0
1
로그아웃하세요
2022년 12월 06일
In 소스 코드 제출
//gendo nagago shipda jebal salu jauyo /* import java.util.*; class Player{ String name; String word; // public void getWord(String word) { } } } class Main{ void Main() { run(); } void run() { System.out.println("끝말잇기 게임을 시작합니다..."); Scanner sc = new Scanner(System.in); System.out.println("게임의 참가하는 인원은 몇명인지 입력하시오>>>>>"); int n=sc.nextInt(); Player[] p = new Player[n]; for(int i=0;i<n;i++){ p[i] = new Player(sc.next()); } String word = "아버지"; int lastIndex=word.length() - 1; char lastChar = word.charAt(lastIndex) ; char firstChar = word.charAt(0); } public static void main(String[] args) { new Main(); } } /* class Person{ static int num=0; //같은 클래스끼리 공통으로 가지는 필드 public String name; private int age; private int money; public Person(String name, int age){ num++; this.name = name; this.age = age; this.money = 0; } public int getMoney() { return money; } public void setMoney(int money) { this.money=money; } public void view() { System.out.println("-----information---"); System.out.println("name : "+name); System.out.println("age : "+age); System.out.println("money : "+money); System.out.println("------------------"); } public static void upNum() { num++; //age=0; static method는 non-static field를 접근 불가능 } } class Main{ public static void main(String[] args) { System.out.println("Person.num : " + Person.num); Person a = new Person("Tom",50); Person b = new Person("John",10); System.out.println(a.name); Person.upNum(); a.setMoney(500000); //a.money=0; //(x) System.out.println(a.getMoney()); System.out.println("a.num : "+a.num); System.out.println("b.num : "+b.num); System.out.println("Person.num : " + Person.num); //System.out.println(a.money); System.out.println(Math.abs(50)); //a.view(); //b.view(); } }*/ class ArrayUtil{ public static int [] concat(int[] a,int[] b) { int i; int [] c = new int[a.length+b.length+1]; for(i=0;i<a.length;i++) { c[i]=a[i]; } for(i=a.length-1;i<a.length+b.length-1;i++) { c[i]=b[i-a.length+1]; } return c; } public static void print(int[] a) { int i; System.out.print("[ "); for(i=0;i<a.length;i++) { System.out.print(a[i]+" "); } System.out.print("]"); } } class Main{ public static void main(String[] args) { int [] array1 = { 1, 5, 7, 9 }; int [] array2 = { 3, 6, -1, 100, 77 }; int [] array3 = ArrayUtil.concat(array1, array2); ArrayUtil.print(array3); } }
0
0
0
로그아웃하세요
2022년 11월 29일
In 소스 코드 제출
/* 우리가 1년동안 뼈빠지도록 2틀은빠짐있이 6교시를 해왔는데 조기방학을 할줄알았더니 뭐? 한달동안 5교시? 장난하냐 조기방학 시켜달라 시켜달라! 시켜달라! 빼애애애액 해줘어어어어어어어어어어어어우어ㅜ어우어ㅜ어워어 //import java.util.*; // class Book { // String title; // String author; // // void show() { System.out.println(title + " " + author); } // // public Book() { // this("",""); // System.out.println("생성자 호출됨"); // } // // public Book(String title) { // this(title, "작자미상"); // } // // public Book(String title, String author) { // this.title = title; // this.author = author; // } //} //class Main{ // public static void main(String[] args) { // Book littlePrince = new Book("어린왕자","생텍쥐페리"); // Book loveStory = new Book("춘향전"); // Book emptyBook = new Book(); // loveStory.show(); // emptyBook.show(); // } //} import java.util.*; class Book { String title; String author; void show() { System.out.println(title + " " + author); } public Book(int title) { this.title = Integer.toString(title); author="no"; } } class Main{ public static void main(String[] args) { Book[] arr = new Book[5]; for(int i=0;i<arr.length;i++) { arr[i] = new Book(i); } arr[i].show(); } } */ import java.util.*; class Circle { private double x, y; private int radius; public Circle(double x,double y,int radius) { this.x=x; this.y=y; this.radius=radius; } public void show() { System.out.println("("+x+","+y+")"+radius); } } class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in) ; Circle c [] = new Circle[3]; for(int i=0; i<c.length ; i++) { System.out.print("x,y,radius >>"); double x=sc.nextDouble();//x 값이 읽기 double y=sc.nextDouble();//y 값이 읽기 int radius=sc.nextInt();//반지름 읽기 c[i] = new Circle(x,y,radius); } for(int i=0;i<c.length;i++) { // 모든 Circle 객체 출력; c[i].show(); } sc.close(); } }
0
0
2
로그아웃하세요
2022년 10월 25일
In 소스 코드 제출
/* import java.util.*; class TV{ //필드만드세요 String t; int n,m; //아래는 생성자구요 public TV(String t,int n,int m) { //객체 생성시 필드의 값을초기화하는 일을 여기서 합니다!! 알겠나요? this.t=t; this.n=n; this.m=m; } public void show(){ System.out.println(t+"에서만든"+n+"년형 "+m+"인치 TV"); } // show 메소드 만드세요! // System.out.println(t+"에서 만든 "+n+"년형 "+m+"인치 "+"TV"); } class Main{ public static void main(String[] args) { TV myTV=new TV("LG",2017,32); myTV.show(); } } import java.util.*; class Grade{ int t,n,m; public Grade() { t=0; n=0; m=0; } public Grade(int t,int n,int m) { this.t=t; this.n=n; this.m=m; } public int average(){ return (t+n+m)/3; } } class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("수학, 과학 , 영어 순으로 3개의 점수입력>>"); int math = scanner.nextInt(); int science=scanner.nextInt(); int english = scanner.nextInt(); Grade me = new Grade(math,science,english); System.out.println("평균은 "+me.average()); scanner.close(); } }*/ import java.util.*; class Song{ String title,artist,country; int year; public Song() { this("n","n",0,"n"); } public Song(String a,String b,int c,String d) { title=a; artist=b; year=c; country=d; } public void show(){ System.out.println(year+"년 "+country+"국적의 "+artist+"가 부른 "+title); } } class Main{ public static void main(String[] args) { Song s = new Song(); s.show(); //Song song = new Song("Dancing Queen","ABBA",1978,"스웨덴"); //song.show(); } }
0
0
1
로그아웃하세요
2022년 10월 04일
In 소스 코드 제출
/*import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x=sc.nextInt(),y=sc.nextInt(),n=sc.nextInt(),a,b,c,d; int[][] arr = new int [101][101]; for(int l=1;l<=n;l++) { a=sc.nextInt(); b=sc.nextInt(); c=sc.nextInt(); d=sc.nextInt(); if(b==0) { for(int i=0;i<a;i++) { arr[c][d+i]=1; } } else { for(int i=0;i<a;i++) { arr[c+i][d]=1; } } } for(int i=1;i<=x;i++) { for(int j=1;j<=y;j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i,j; int[][] arr = new int [1000][1000]; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { arr[i][j]=sc.nextInt(); } } int x=2,y=2; for(;;) { if(arr[x][y]==2) { arr[x][y]=9; break; } arr[x][y]=9; if(arr[x+1][y]==1&&arr[x][y+1]==1) { break; } if(arr[x][y+1]==1) { x++; } else { y++; } } for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); if(n%2==0) { System.out.println("even"); } else{ System.out.println("odd"); } } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); for(int i=1;i<=n;i++) { System.out.print(i+" "); } } }*/ import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(),m=sc.nextInt(); int i,a=0; for(i=n;i<=m;i++) { if(i%3==0) { a+=i; } } System.out.println(a); } }
0
0
1
로그아웃하세요
2022년 9월 27일
In 소스 코드 제출
/* * 메소드 (함수) * compile : ctrl+ f11 * ctrl + space (자동완성) * 출력 syso + 자동완성 * 정수 int long 실수 float double 문자 char + 불린 boolean true or false 문자열 String str = "hello"; boolean find = true; 문자열 + 문자열 (합쳐짐) 정수 + 정수 (정수의 합이 계산) 정수 + 문자열 or 문자열+정수 (문자열로 합쳐짐) import java.util.*; public class Main { public static void main(String[] args) { //System.out.println("hello world"); String str = "hello"; int a = 10; //System.out.print(a); //System.out.println(a + str+"입니다"); //스캐너 객체 생성 Scanner sc = new Scanner(System.in); // int b = sc.nextInt(); // System.out.printf("%02d",b); int c = sc.nextInt(), d = sc.nextInt(); // int e; // e = sc.nextInt(); // + - * / % // > < >= <= == != // && || System.out.println(c==d); //System.out.println("입력받은 정수는 "+b+"입니다."); //long c = sc.nextLong(); //float c = sc.nextFloat(); //String s = sc.next(); // 한 단어 (공백x) //String s1 = sc.nextLine(); //한 문장 //System.out.println(s1); if(){ } else { } switch() { case 10 : } for(;;) { } while(true) { } } (long)a+b a+b+c)/3.0 } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); System.out.println(n,n,n); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); float n=sc.nextFloat(); System.out.printf("%.2f",n); } } import java.util.*; class Main{ public static void main(String[] args) { } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); System.out.println(n + " " + n + " " + n); } } inport java.until.*; {class Main() public stanic void main(String.h [] arms) Scaner sc = new scanner(System.in); int n=sc.nextInt[sc],m=sc.nextInt[sc]; System.out.println(n+m); System.out.println(n-m); System.out.println(n*m); System.out.println(n/m); System.out.println(n%m); System.out.println("%.2f",(float)n/m); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(),m=sc.nextInt(),j=sc.nextInt(); System.out.println(n+m+j); double a=(n+m+j)/3; System.out.printf("%.1f",a); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int b=sc.nextInt(),a=sc.nextInt(),c=sc.nextInt(); System.out.println((a<b ? a : b)<c ? (a>b ? b : a) : c); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); System.out.println(n/60 + " " +n%60); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(),m=sc.nextInt(); if(n>=m) System.out.println(n-m); else System.out.println(m-n); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(),m=sc.nextInt(),j=sc.nextInt(); System.out.println(n+m+j); double a=(n+m+j)/3.0; System.out.printf("%.1f",a); //System.out.print(a + " "); } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); //int arr[10]; (x) int[] arr; arr = new int[10]; int n = 10; int[] arr1 = new int[n];//기본적으로0으로초기화됨 for(int i=0;i<arr1.length;i++) arr1[i] = sc.nextInt(); int[][] arr2 = new int[5][10]; } } import java.util.*; class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[sc.nextInt()]; for(int i=0;i<arr.length;i++) { arr[i]=sc.nextInt(); } for(int i=arr.length-1;i>=0;i--) { System.out.print(arr[i]+" "); } } } */
0
0
2
로그아웃하세요
2022년 8월 31일
In 소스 코드 제출
#include <stdio.h> int map[501][501]={}; int main() { int n,m,a,b,i,j; scanf("%d %d",&n,&m); for(i=0;i<m;i++){ scanf("%d %d",&a,&b); map[b][a]=1; } } #include <stdio.h> int m,n,k,a[101][101]={},cnt[100]={},tcnt=0; void dfs(int x,int y){ if(x<0||y<0||x>=m||y>=n||a[x][y]!=0) return ; cnt[tcnt]++; a[x][y]=1; dfs(x-1,y); dfs(x+1,y); dfs(x,y-1); dfs(x,y+1); } int main() { int b,c,d,e,i,j,ii,jj; scanf("%d %d %d",&m,&n,&k); for(j=1;j<=k;j++){ scanf("%d %d %d %d",&b,&c,&d,&e); for(ii=c;ii<e;ii++){ for(jj=b;jj<d;jj++){ a[ii][jj]=1; } } } for(i=0;i<m;i++){ for(j=0;j<n;j++){ if(a[i][j]==0){ tcnt++; dfs(i,j); } } } printf("%d\n",tcnt); for(i=1;i<tcnt;i++){ for(j=0;j<tcnt-i+1;j++){ int t; if(cnt[j]>cnt[j+1]){ t=cnt[j]; cnt[j]=cnt[j+1]; cnt[j+1]=t; } } } for(i=1;i<=tcnt;i++) printf("%d ",cnt[i]); }
0
0
2
로그아웃하세요
2022년 8월 17일
In 소스 코드 제출
/* 단지번호붙이기 dfs (정렬추가) #include <stdio.h> int n,map[26][26]; int danji[500]={},cnt=0; void dfs(int x, int y) { if(x<0||y<0||x>=n||y>=n||map[x][y]==0) return ; map[x][y]=0; //방문했다 danji[cnt]++; //sum++; dfs(x-1,y); dfs(x+1,y); dfs(x,y-1); dfs(x,y+1); } int main(){ int i,j; scanf("%d",&n); for(i=0;i<n;i++){ for(j=0;j<n;j++){ scanf("%1d",&map[i][j]); } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(map[i][j]==1)//start { cnt++; //sum=0; dfs(i,j); //if(sum>=3) cnt++; } } } //danji 정렬 printf("%d\n",cnt); for(i=1;i<=cnt;i++) printf("%d ",danji[i]); } dfs 8방향 char 4024 */
0
0
2
로그아웃하세요
2022년 8월 10일
In 소스 코드 제출
//일단은 스택으로 받지 말고 어떻게 해야할까악아가아가아강까아가아가아가아가아가까아가라아가아까아가아가아ㅏ가앋가까악까악ㄲ까악까아가까아가아가아각 /* #include <stdio.h> #include <string.h> int main() { char k[100001]={}; int n=0,m=0,i; gets(k); for(i=0;k[i]!=0;i++){ if(k[i]=='('){ if(k[i+1]==')') { n+=m; i++; } else{ m++; } } else{ m--; n++; } } printf("%d",n); } https://devuna.tistory.com/32 : dfs bfs 참고 dfs : 재귀, 스택 (깊이우선탐색) bfs : 큐 (너비 우선 탐색) 그래프 형태 ( 인접행렬 - 연결상태를 나타내는 이차원 배열, 방문여부 - 일차원 배열) map 형태 (이차원 배열 형태 ) 1. 바이러스 dfs로 구현 (완) 2. 바이러스 bfs로 구현 (하는중) 3. map유형 dfs 구현 (주요 과제) #include <stdio.h> int arr[101][101]={},n,m; int visited[101]={}; //2. 방문여부 저장 배열 void dfs(int node) // node에서 dfs { int i; visited[node]=1; //방문한 적 없으면서 연결된 곳에서 또 dfs for(i=1;i<=n;i++) { if(arr[node][i]==1 && visited[i]==0){ dfs(i); } } } int main() { int i, j, k, l; scanf("%d %d",&n,&m); //1. 인접행렬 생성 for(i=1;i<=m;i++){ scanf("%d %d",&k,&l); arr[k][l]=1; } dfs(1); int cnt=0; for(i=2;i<=n;i++) cnt+=visited[i]; printf("%d",cnt); for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ printf("%d ",arr[i][j]); } printf("\n"); } } */
0
0
3
로그아웃하세요
2022년 7월 20일
In 소스 코드 제출
/* #include <stdio.h> #include <string.h> int stack[201]={}; int top=-1; void push(int n) { stack[++top]=n; } pop(char n) { if(n=='+'){ stack[top-1]=stack[top]+stack[top-1]; } else if(n=='-') stack[top-1]=stack[top-1]-stack[top]; else stack[top-1]=stack[top]*stack[top-1]; top--; } int main() { int i,j,l,num=0,cnt=0; char scan[201]={}; gets(scan); for(i=0;scan[i]!=0;i++){ if('0'<=scan[i]&& scan[i]<='9'){ num=num*10+scan[i]-'0'; if(scan[i+1]==' ') { push(num); num=0; } } else if(scan[i]!=' '){ pop(scan[i]); } } printf("%d",stack[top]); return 0; } stack lifo top queue fifo front : 마지막으로 나간 데이터의 위치 rear : 마지막으로 들어온 데이터의 위치 (==top) enqueue (push) dequeue (pop) #include <stdio.h> int queue[500]; int front=-1; int rear=-1; void enq(int data) { queue[++rear]=data; } int deq() { if(front==rear) return -1; //empty check return queue[++front]; } int main() { return 0; } dfs - recursive or stack bfs - queue 현재의 최적 해가 전체의 최적 해 */ #include <stdio.h> #include <string.h> int top=-1; int main() { }
0
0
1
로그아웃하세요
2022년 7월 13일
In 소스 코드 제출
#include <stdio.h> #include <string.h> int stack[201]={}; int top=-1; void push(int n) { top++; stack[top]=n; } int main() { int n,i; char scan[50]; scanf("%d ",&n); for(i=0;i<n;i++) { gets(scan); if(scan[0]=='p'&&scan[1]=='u'){ push(scan[6]-'0'); } else if(scan[0]=='t') { if(top==-1) printf("-1\n"); else printf("%d\n",stack[top]); } else if(scan[0]=='p'&&top>-1) top--; else if(scan[0]=='s') { printf("%d\n",top+1); } else if(scan[0]=='e'){ if(top==-1) printf("true\n"); else printf("false\n"); } } return 0; }
0
0
1
로그아웃하세요
2022년 7월 06일
In 소스 코드 제출
/* //re 라는 함수를 만든다 //만약 (라는 문자가 입력된다면 re를 1을 더한다 , ) re -- //하지만 re==0 인 상황에 )라는 문자가 나온다면 bad를 출력한다 //만약 이모든걸 다 통과했다, re !=0 bad, 면 good을 출력한다 #include <stdio.h> #include <string.h> int top=0; int main() { char arr[50001]={}; scanf("%s",arr); for(int i=0 ;i<strlen(arr);i++) { if(arr[i]=='(') top++; else { if(top==0) { printf("bad"); return 0; } top--; } } if(top==0) { printf("good"); } else { printf("bad"); } } */ //스택 배열 두개와 최종 배열 한개 탑 함수 2개를 만든다(전역) //그리고 문자열 2개를 더만든다 (메인함수에서만 적용) //일단 그 문자열두개에 입력을 받는다 //그걸 거꾸로 스택에 넣어 놓는다 //문자열 strlen을 이용하여 두개다 갈이를 구해놓는다 //그리고 포문에 문자열 길이가장 작은것 만큼만 돌린다 // 더한값에 %10한 값을 최종 배열 i번째에 더해주고 // 더한값에 /10한 값을 최종배열 i+1번째에 더해주고 //끝까지 한뒤 거꾸로 출력하면 답이 나옴 /* #include <stdio.h> #include <string.h> int fs[101]={},ss[101]={}; int ftop=-1,stop=-1; int lp[300]={}; void push(int n,int m,int i) { if(m==1) fs[i]=n-'0'; if(m==2) ss[i]=n-'0'; } void plus(int n,int m) { int k=0; int max= (n>m?n:m)+1; for(int i=0 ; i<max ; i++) { lp[i]+=(fs[i]+ss[i]+k)%10; k=(fs[i]+ss[i]+k)/10; } } int main() { char fr[101]={},sr[101]={}; int n,m,cnt=0; scanf("%s%s",fr,sr); n=strlen(fr); m=strlen(sr); for(int i=n-1;i>=0;i--){ push(fr[i],1,cnt); cnt++; } cnt=0; for(int i=m-1 ; i>=0;i--){ push(sr[i],2,cnt); cnt++; } plus(n,m); if(lp[(n>m ? n:m)]>0) cnt=0; else cnt=1; for(int i=(n>m ? n:m)-cnt;i>=0;i--) printf("%d",lp[i]); } */
0
0
1
로그아웃하세요
2022년 6월 29일
In 소스 코드 제출
/* //전처리기 #include <stdio.h> #define SIZE 50 //상수 선언 int stack[SIZE]={}; int top=-1; //top은 마지막 데이터의 위치 void view_stack(){ printf("stack >> "); for(int i=0;i<=top;i++) printf("%d ",stack[i]); printf("\n"); } void push(int data){ //full check if(top==SIZE-1) return ; stack[++top]=data; } int pop(){ //empty check if(top==-1) return -1; // -1을 넣지 않는 스택일때만 return stack[top--]; } int main() { while(1){ int c; printf("1. push 2. pop 3. view >>"); scanf("%d",&c); if(c==1){ int n; printf("push할 데이터를 입력하세요 >>"); scanf("%d",&n); push(n); view_stack(); } else if(c==2){ int n = pop(); if(n==-1) continue; printf("%d\n",n); // if(top==-1) continue; // printf("pop 데이터는 %d 입니다\n",stack[top]); // top--; view_stack(); } else{ view_stack(); } } } #include <stdio.h> #include <string.h> char stack[500]={}; int top=-1; void push(char n) { stack[++top]=n; } char pop() { return stack[top--] ; } int main() { char str[500]={}; scanf("%s",str); for(int i=0;str[i]!=0;i++){ push(str[i]); } while(top!=-1){ printf("%c",pop()); } } 8 12345678 12,345,678 6 456789 456,789 4 1234 1,234 */ /* #include <stdio.h> char stack[300]={ }; int top=-1; void push(char n) { stack[++top]=n; } void pop() { printf("%c",stack[top--]); } int main() { int n,i; char str[201]; scanf("%d\n%s",&n,str); for(i=n-1;i>=0;i--) { push(str[i]); } while(top!=-1){ if((top+1)%3==0&&top!=n-1) printf(","); pop(); } } */ #include <stdio.h> int stack[100001]={}; int top=-1; void push(int n) { stack[++top]=n; } int main() { int n,i,m; int sum=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&m); if(m!=0) push(m); else top--; } for(i=0;i<=top;i++) { sum+=stack[i]; } printf("%d",sum); }
0
0
2
로그아웃하세요
2022년 6월 22일
In 소스 코드 제출
/* #include <stdio.h> int quick2[50001]={}; int quick[50001]={}; void qs(int s,int e) { if(s>=e) return ; int pivot=s,high=e+1,low=s; do { do { low++; }while(quick[pivot]> quick[low]); do { high--; }while(quick[pivot]<quick[high]); if(low<high) swap(low ,high); } while(low<high); swap(pivot,high); qs(s,high-1); qs(high+1,e); } void swap(int x, int y) { int temp=quick[x]; quick[x]=quick[y]; quick[y]=temp; } int bs(int s,int e,int k) { int mid=(s+e)/2; if(s>e) return -1; if(quick[mid]<k){ bs(mid+1,e,k); } else if(quick[mid]>k) bs(s,mid-1,k); else return mid-1; } int main() { int n,i,k=0; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&quick[i]); } for(i=1;i<=n;i++) { quick2[i]=quick[i]; } qs(1,n); for(i=1;i<=n;i++) { printf("%d ",bs(1,n,quick2[i])); } } /* int arr[50000]; //binary search 이진탐색 이분탐색 int bs(int s, int e, int k) //arr[s] ~ arr[e] 에서 k값의 위치를 리턴 { int mid=(s+e)/2; if(s>e) return -1; //못찾음 if(arr[mid]<k){ bs(mid+1,e,k); } else if(arr[mid]>k){ bs(s,mid-1,k); } else{ return mid; } } #include <stdio.h> int arr[1000001]={}; int find[1000001]={}; int bs(int s,int e,int k) { int mid=(s+e)/2; if(s>e) return -1; if(arr[mid]>k) bs(s,mid-1,k); else if(arr[mid]<k) bs(mid+1,e,k); else return mid; } int main() { int n,i,m; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&arr[i]); scanf("%d",&m); for(i=1;i<=m;i++) scanf("%d",&find[i]); for(i=1;i<=m;i++) printf("%d ",bs(1,n,find[i])); } */ #include <stdio.h> int arr[100001]={}; int bs(int s,int e,int k) { int mid=(s+e)/2; if(arr[e]<k) return e+1; if(arr[s]>=k) return s; if(arr[mid]>=k) bs(s,mid,k); else if(arr[mid]<k) bs(mid+1,e,k); } int main() { int n,m,i; scanf("%d %d",&n,&m); for(i=1;i<=n;i++) scanf("%d",&arr[i]); printf("%d",bs(1,n,m)); }
0
0
1
로그아웃하세요
2022년 6월 15일
In 소스 코드 제출
/* #include <stdio.h> #include <string.h> typedef struct { char bucket [100]; int bj; }a; int main() { a bucket_list[101],temp; int n,i,j, x, y, z; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%s %d %d %d",bucket_list[i].bucket,&x,&y,&z); bucket_list[i].bj=x*10000+y*100+z; } for(i=1;i<n;i++) { for(j=1;j<=n-i;j++) { if(bucket_list[j].bj>bucket_list[j+1].bj) { temp=bucket_list[j]; bucket_list[j]=bucket_list[j+1]; bucket_list[j+1]=temp; } else if(bucket_list[j].bj==bucket_list[j+1].bj) { if(strcmp(bucket_list[j].bucket,bucket_list[j+1].bucket)>0) { temp=bucket_list[j]; bucket_list[j]=bucket_list[j+1]; bucket_list[j+1]=temp; } } } } for(i=1;i<=n;i++) printf("%s\n",bucket_list[i].bucket); // char a[50]="love"; // char b[50]="abcd"; // strcmp(a,b)>0 // strcmp(b,a)<0 // strcmp(a,"love")==0 } 버블 코드 쉬워 항상 느려> 개선 선택 삽입 코드 조금 어려워 "데이터가 정렬이어느정도되어있는경우" 굉장히빨라 코드 짱어려워 퀵정렬(재귀), 병합정렬, 힙정렬, 기수정렬, ....... #include <stdio.h> int a[10001]; int n, i, j, temp, key; int main() { scanf("%d", &n); for (i = 1; i <= n; i++) scanf("%d", &a[i]); for (i=2; i<=n; i++) { key=a[i]; for(j=i-1;j>=1&&key<a[j];j--) { a[j+1]=a[j]; } a[j+1]=key; } for (i=1; i<=n; i++) printf("%d\n", a[i]); return 0; } hint . 메모이제이션 key 라는 변수에 i에 있는 값을 저장 해놓은 후 key값보다 작은수를 count에 저장한후 위치만큼 배열에 냅둔다 #include <stdio.h> int main() { int memo[100001]={}; int n,i,j,key; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&key); memo[key]++; } //memo[i] = i가 입력된 횟수 // 1을 memo[1]번 출력 // 2를 memo[2]번 출력 //..... //100000을 memo[100000]번 출력 for(i=0;i<=100000;i++) { if(memo[i]!=0) { for(j=1;j<=memo[i];j++) { printf("%d ",i); } } } return 0; } f(n) : n번 째 피보나치수 s가 피벗값보다크고 e위치가 피벗 값보다 작으면 교환후 한칸진전 만약 하나는 아닌데 하나는 맞다면 맞는것은 진전 아닌것은 기다린다 결국은 끝까지 안나오거나 첫번째 결과가나온다 그걸 다한후 s위치와 피벗 위치를 교환한다 그리고 피벗은 가운데에 있으므로 그 나머지에 있는 부분을 위와같은 알고리즘으로 반복 그러면 정렬완성 그리고 참고로 완전히 시간을 단축하려면 do while 사용 */ //#include <stdio.h> //int f(int n) //{ // if(n<=2) return 1; // return f(n-1)+f(n-2); //} //int main() //{ // int n; // scanf("%d",&n); // printf("%d",f(n)); // //} #include <stdio.h> int arr[100001]= {}; void swap(int x, int y) { int t=arr[x]; arr[x]=arr[y]; arr[y]=t; } //void quick_sort void qs(int s, int e) //arr[s] ~arr[e] 퀵정렬하세요 { if(s>=e) return ; int pivot=s; //기준값의 위치는 맨 첫번째값 int low=s, high=e+1; //arr[pivot]값을 기준으로 작은건 왼쪽, 큰건 오른쪽에 정렬 do { do { low++; }while(arr[pivot] > arr[low]); do{ high--; }while(arr[pivot] < arr[high]); if(low<high) { swap(low,high); } } while(low<high); swap(pivot,high); qs(s,high-1); qs(high+1,e); } int main() { int n,i; scanf("%d",&n); for(i=1; i<=n; i++) scanf("%d",&arr[i]); qs(1,n); for(i=1; i<=n; i++) printf("%d\n",arr[i]); return 0; }
0
0
4
로그아웃하세요
2022년 6월 01일
In 소스 코드 제출
//알고리즘 :1. 영어를 한배열에 모두 받아놓은후 //2.메인 함수에서 n이 26 몇 제곱 이하인지 구해 놓는다 //3.그후 재귀 함수에서 n하고 제곱한숫자를 넘긴다 //4.제곱 한숫자는 m이라고 함 //5.재귀 함수를 돌릴 양은 m이라고 한후 m이 0이 될떄 까지 뺌 //6.글럼 재귀 함수 안에서 (n-1)을26으로 나누고 //7.나머지를 배열 안에 넣어서 값을 도출 //8.만약 나머지 몫이 27미만이면 그대로 다시나누는데 몫에 1을 뺀수를 배열에 넣어 답을도출 //9.근데 몫이 27이상이면 미만이 될때까지 6~8번 반복 /* #include <stdio.h> char Eng[27]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','X','T','U','V','W','X','Y','Z'}; void f(int n) { if(n>=27) f((n-1)/26); printf("%c",Eng[(n-1)%26]); } int main() { int n; scanf("%d",&n); f(n); return 0; }vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv #include <stdio.h> int main() { int n,i,j,count=0,tmp; int arr[1001]={}; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&arr[i]); for(i=1;i<n;i++) { count=0; for(j=1;j<=n-i;j++) { if(arr[j]>arr[j+1]) { count++; tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } } if(count==0) { break; } } printf("%d",i-1); } */ /* #include <stdio.h> int a[10001],q; int n, i, j, temp, min; int main() { scanf("%d", &n); for (i = 1; i <= n; i++) scanf("%d", &a[i]); for (i=1; i<n; i++) { min=i; for (j=i+1; j<=n; j++) { if(a[min]<a[j]) min=j; } temp = a[i]; a[i] = a[min]; a[min] = temp; } for (i=1; i<=n; i++) printf("%d ", a[i]); return 0; } */ /* #include <stdio.h> int a[10001]; int n, i, j, temp; int main() { scanf("%d", &n); for (i=1; i<=n; i++) scanf("%d", &a[i]); for(i=1; i<n; i++) { for(j=1;j<=n-i;j++) { if (a[j] < a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } for (i = 1; i <= n; i++) printf("%d ", a[i]); return 0; } */ #include <stdio.h> typedef struct { char name[50]; int point; }stu; int main() { stu student[51],temp; int n,i,j,min; scanf("%d ",&n); for(i=1;i<=n;i++) { scanf("%s %d",student[i].name,&student[i].point); } for(i=1;i<n;i++) { min=i; for(j=i+1;j<=n;j++) { if(student[min].point <student[j].point) { min=j; } } temp=student[min]; student[min]=student[i]; student[i]=temp; } printf("%s",student[3].name); return 0; }
0
0
5
로그아웃하세요
2022년 5월 25일
In 소스 코드 제출
/* #include <stdio.h> typedef struct { char name[11]; int score; }st; int main() { st com[101]={}; int i,j,n,m; int count=0,scorre=0; scanf("%d %d ",&n,&m); for(i=0;i<n;i++) scanf("%s %d",com[i].name,&com[i].score); for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(com[j].score>scorre){ scorre=com[j].score; count=j; } } // printf("%d\n",scorre); printf("%s\n",com[count].name); com[count].score=-200000000; scorre=0; } return 0; #include <stdio.h> int main() { int a=10; int* pa = &a; printf("a : %d\n",a); printf("&a : %d\n",&a); printf("pa : %d\n",pa); printf("*pa : %d\n",*pa); } #include <stdio.h> void f(int* pa) { *pa = 100; } int main() { int a=10; f(&a); printf("%d",a); } #include <stdio.h> void myswap(int* p1,int* p2) { if(*p1>*p2) { int sec_a; sec_a=*p1; *p1=*p2; *p2=sec_a; } } main() { int a, b; scanf("%d%d", &a, &b); myswap(&a, &b); printf("%d %d", a, b); } #include <stdio.h> void f(char* str) { //printf("%s",str); str[0]='c'; str[2]='c'; } int main() { char str[50]={}; //배열의 이름 == 배열의첫번째원소의 주소 scanf("%s",str); //str = &str[0] f(str); printf("%s",str); } for(int i=start;i<start+count;i++) { printf("%c",str[i]); } */ /* #include <stdio.h> char* mysubstr(char *str,int start,int count) { //대충 그 범위 안이 아니라 면 NULL롤 바꾼후 라턴하면 된다 에카하냐 그걸 으으으으으으음 으으음 으으으음 음 포문을 돌린후 i와 j를 동시에 값을 일씩 올리고 만약 j가 아이가 아님라면 NULL로 볌홤함다 아 캐리여 gc(good code) str[start+count]=NULL; return &str[start]; } int main() { int start,count; char str[101]; scanf("%s %d %d",str,&start,&count); printf("%s",mysubstr(str,start,count)); } */
0
0
1
로그아웃하세요
2022년 5월 18일
In 소스 코드 제출
#include <stdio.h> int check(int x,int y) { if(memo[1][x]>memo[1][y]) return x; else if(memo[1][y]>memo[1][x]) return y; else if(memo[2][x]>memo[2][y]) return x; else if(memo[2][y]>memo[2][x]) return y; else return 0; } int check3() { //2가 같은 것중 같은 것이있다면 계속 비교후 그다음 3까지 하고 그래도 안되먄ㅇ ㅚ정 서누ㅡ춣 ㅛㅣㅍㅎㅂ재ㅔ113152 } int memo[4][4]={}; int main() { int n, i, a,b,c; scanf("%d",&n); for(i=1; i<=n; i++) { scanf("%d %d %d",&a, &b, &c); memo[a][1]++; memo[b][2]++; memo[c][3]++; } for(i=1; i<=3; i++) memo[0][i]=memo[1][i]+memo[2][i]*2+memo[3][i]*3; a = memo[0][1]; b = memo[0][2]; c = memo[0][3]; //회장 바로 결정 if(a>b && a>c) printf("1 %d", a); else if(b>c && b>a) printf("2 %d",b); else if(c>a && c>b) printf("3 %d",c); //세 개 같은 경우 else if(a==b&&b==c) printf("%d %d",check3(),a); //두 개씩 같은 경우 else if(a==b) printf("%d %d",check(1,2),a); else if(a==c) printf("%d %d",check(1,3),a); else if(b==c) printf("%d %d",check(2,3),b); else printf("0 %d",a); return 0; }
0
0
2
로그아웃하세요
2022년 5월 11일
In 소스 코드 제출
/* #include <stdio.h> int main() { int i,a,b,c,d,n,money,high=0,money_high=0; scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d %d %d %d",&a,&b,&c,&d); if(a==b&&a==c&&a==d) { money=50000+a*5000; } else if((a==b&&a==c)||(a==b&&a==d)||(a==c&&a==d)) { money=10000+a*1000; } else if(b==c&&b==d) { money=10000+b*1000; } else if(a==b&&c==d || a==c&&b==d || a==d&&b==c) { money=2000; if(a==b) money+=(a+c)*500; else money+=(a+b)*500; } else if(a==b||a==c||a==d) { money=1000+a*100; } else if(b==c||c==d) { money=1000+c*100; } else if(b==d) { money=1000+b*100; } else { high=(a>b ? a:b) > (c>d ? c:d) ? (a>b ? a:b) : (c>d ? c:d); money=high*100; } if(money_high<money) { money_high=money; } } printf("%d",money_high); return 0; } */ #include <stdio.h> typedef struct { int c, n, g; } student; int main() { int i,j,n,memo=0,high=0,contry[3]={},k,l,count=0; int a, b; student st[101]={}; scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d %d %d",&st[i].c,&st[i].n,&st[i].g); } for(j=0; j<2; j++) { for(i=0; i<n; i++) { if(st[i].n>st[high].n) high=i; } if(j==0) a=st[high].c; if(j==1) b=st[high].c; printf("%d %d\n",st[high].c,st[high].n); st[high].n-=2000000000; } if(a==b) { for(i=0; i<n; i++) { if(st[i].c==a) st[i].n=0; } } for(i=0; i<n; i++) { if(st[i].n>st[high].n) high=i; } printf("%d %d\n",st[high].c,st[high].n); return 0; }
0
0
3
로그아웃하세요
2022년 5월 11일
In 소스 코드 제출
#include <stdio.h> int main() { int i,j,k,money_high=0,count=0,double_count=0,sec_memo; int dice[1001][5]={},n,memo,money_base=0,hig=0; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<4;j++) { scanf("%d",&dice[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<4;j++) { for(k=0;k<4;k++) { if(j!=k){ if(dice[i][j] == dice[i][k]) count++; if(double_count==1||double_count==2) sec_memo=dice[i][k]; else memo = dice[i][k]; } if(hig<dice[i][k]) hig = dice[i][k]; } if(count==3||count==4){ break; } else if(count==2) { double_count++; } else if(double_count==2) { break; } } if(count==4) money_base=50000+memo*5000; else if(count==3) money_base=10000+memo*1000; else if(double_count==2) money_base=2000+(memo*500)+(sec_memo*500); else if(double_count==1) money_base=1000+memo *100; else money_base=hig*100; memo=0; sec_memo=0; count=0; double_count=0; hig=0; if(money_high<money_base) money_high=money_base; } printf("%d",money_high); return 0; }
0
0
2

로그아웃하세요

더보기
bottom of page