2024 하계모각코

[2024 하계모각코] 1주차 결과

슈슈버거 2024. 7. 18. 18:29

1주차 결과

 

백준, 코드트리 등 코딩테스트형 문제를 풀어볼 수 있는 사이트들을 찾아보았다

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
    int t;

    scanf("%d", &t); //테스트케이스의 개수 t에 저장해주기

    //t만큼 반복문 실행
    for(int i = 0; i<t; i++){
        int N, M;

        scanf("%d %d", &N, &M); //서쪽, 동쪽 개수 각각 N, M에 저장하기

        long long result = 1; //경우의 수

        //바로바로 계산해주기
        for(int j = 1; j<=N; j++){
            result *= M;
            result /= j;
            M--;
        }

        printf("%lld\n", result);
    }
    return 0;
}

C언어로 경우의 수를 구하는 다리 놓기 문제를 풀어보았다

C언어는 속도가 빠른 장점이 있지만 안 한지 꽤 되어서 문법이 아직은 좀 헷갈리는 것 같다.

A,B = map(float, input().split())

print(A/B)

파이썬은 이번에 학기 중 수업에서 가장 많이 접한 언어다

떄문에 가장 기본적인 문제를 풀어서 바로바로 생각해낼 수 있는가를 테스트했다

 

import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int sero = Integer.parseInt(st.nextToken());
        int garo = Integer.parseInt(st.nextToken());

        String black = "BWBWBWBW";
        String white = "WBWBWBWB";

        ArrayList<String> chess = new ArrayList<>();
        for(int i = 0; i<sero; i++){
            chess.add(br.readLine());
        }

        int bmin = 64;
        int wmin = 64;

        // 첫 줄이 black인 경우
        int si = 0;
        int gi = 0;

        while(si<=sero-8){
            gi = 0;

            while(gi<=garo-8){
                int count = 0;

                for(int i = 0; i<8; i++){
                    String sen = chess.get(si+i);
                    if(i%2==0){
                        for(int j = 0; j<8; j++){
                            if(sen.charAt(gi+j) != black.charAt(j)){
                                count++;
                            }
                        }
                    }
                    else{
                        for(int j = 0; j<8; j++){
                            if(sen.charAt(gi+j) != white.charAt(j)){
                                count++;
                            }
                        }
                    }
                }

                if(count<bmin){
                    bmin = count;
                }

                gi++;
            }

            si++;
        }

        // 첫 줄이 white인 경우
        si = 0;
        gi = 0;

        while(si<=sero-8){
            gi = 0;

            while(gi<=garo-8){
                int count = 0;

                for(int i = 0; i<8; i++){
                    String sen = chess.get(si+i);
                    if(i%2==0){
                        for(int j = 0; j<8; j++){
                            if(sen.charAt(gi+j) != white.charAt(j)){
                                count++;
                            }
                        }
                    }
                    else{
                        for(int j = 0; j<8; j++){
                            if(sen.charAt(gi+j) != black.charAt(j)){
                                count++;
                            }
                        }
                    }
                }

                if(count<wmin){
                    wmin = count;
                }

                gi++;
            }

            si++;
        }

        if(bmin<wmin){
            bw.write(bmin+"");
        }
        else{
            bw.write(wmin+"");
        }

        bw.close();
    }
}

자바는 가장 처음 배운 언어라 기억에 좀 남아있긴 하지만 사소한 문법들이나 이런 것들이 자동완성 없이는 힘든 것을 느꼈다

 

우선은 파이썬을 우선적으로 해보고자 한다.