no image
[백준 1019번 문제, JAVA] 책 페이지
문제지민이는 전체 페이지의 수가 N인 책이 하나 있다. 첫 페이지는 1 페이지이고, 마지막 페이지는 N 페이지이다. 각 숫자가 전체 페이지 번호에서 모두 몇 번 나오는지 구해보자.코드import java.io.*; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a = 1; int b = Integer.parseInt(br.readLine()); int[] counts = new int[10]; int digit = 1..
2023.03.12
no image
토익 600 ~ 700 기초 학습 노트 (5) to부정사
to 부정사 문장에서 주어, 목적어, 보어, 부사 등의 역할을 한다. to + 동사원형 형태 to 부정사의 문장 역할 주어 역할 To consider customers' needs is critical at this point. 고객의 요구를 고려하는 것은 이 시점에서 매우 중요하다. * to부정사 주어는 보통 가주어 it으로 대체되고 문장 맨 뒤로 옮겨지는 경우가 많다 * It is critical to consider customers' needs at this point. * to부정사가 주어로 나올 때는 단수 명사로 받아친다. * 여기서 ' 기호는 복수명사의 소유격을 나타낸다. * 일반적으로 명사 뒤에 s를 붙이면 소유격을 의미하는데 복수명사도 s를 붙여야해서 * 의미 혼란이 생기는 것을 방지하기..
2023.03.11
no image
[백준 1057번 문제, JAVA] 토너먼트
문제 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 한다. 이긴 사람은 다음 라운드에 진출하고, 진 사람은 그 라운드에서 떨어진다. 만약 그 라운드의 참가자가 홀수명이라면, 마지막 번호를 가진 참가자는 다음 라운드로 자동 진출한다. 다음 라운드에선 다시 참가자의 번호를 1번부터 매긴다. 이때, 번호를 매기는 순서는 처음 번호의 순서를 유지하면서 1번부터 매긴다. 이 말은 1번과 2번이 스타를 해서 1번이 진출하고, 3번과 4번이 스타를 해서 4번이 진출했다면, 4번은 다음 라운드에서 번호 2번을 배정받는다. 번호를 다시 배정받은 후에 한 명만 남을 때까지 라운드를..
2023.03.09
no image
[백준 1032번 문제, JAVA] 명령 프롬프트
문제 시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다. dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 exe인 것이 모두 나온다. 이때 두 번째 문자는 아무거나 나와도 된다. 예를 들어, acb.exe, aab.exe, apb.exe가 나온다. 이 문제는 검색 결과가 먼저 주어졌을 때, 패턴으로 뭘 쳐야 그 결과가 나오는지를 출력하는 문제이다. 패턴에는 ..
2023.03.08
no image
토익 600 ~ 700 기초 학습 노트 (4) 명사 대명사
명사 명사는 주어, 목적어, 보어의 역할을한며, 가산 명사, 불가산 명사로 나눌 수 있다. 주어 역할 (은, 는, 이가) Applications should be submitted by the end of the week. 지원서는 이번 주 말까지 제출되어야 한다. 목적어 역할 (을, 를) You should send your application by the end of the week. 보어 역할 What we need at the moment is your participation. 우리가 지금 필요로 하는 것은 당신의 참여입니다. 가산 명사, 불가산 명사 불가산 명사는 a(an), -s 를 쓰면 안된다 * 가산 명사는 너무 많기 때문에 불가산 명사를 외우자 * 불가산 명사에서 중요한 것 : sta..
2023.03.07
no image
토익 600 ~ 700 기초 학습 노트 (3) 수동태 능동태
동사에 따른 수동태 능동태는 주어가 행위의 주체지만, 수동태는 행위의 영향을 받는 대상이 주어가 된다. 수동태 만들기 주어와 목적어의 위치를 바꾸고, 동사는 be + v-ed 형태로 고친다. 능동태의 주어는 by + 주어를 쓰고 생략 가능하다 능동태 The company recoreded the conference call. 회사는 컨퍼런스콜을 녹음했다. 수동태 The conference call was recoreded by the company. 컨퍼런스콜이 회사에 의해 녹음되었다. 동사 시제 별 수동태 형태 현재시제 record -> is/are recorded 현재진행시제 is recording -> is being recorded 동사에 따른 수동태 4형식 동사의 수동태 목적어가 두 개인 4형식..
2023.03.06
no image
프로그래밍 입문 학습 노트 (1)
컴퓨터 기초 과거 사람들의 계산 방법 주판 -> 천공 카드 -> 기계식 계산기 -> 컴퓨터 컴퓨터의 발전 단계 역사 1세대 2세대 3세대 4세대(~ 현재) 5세대(미래~) 6세대 진공관 트랜지스터 직접 회로 (IC) 고밀도 직접회로 인공지능과 대화 자기 코어 자기코어 IC, 자기 코어 vlsi, lsi 음성 명령 자기 드럼 자기 디스크 자기 디스크 자기 디스크 초고속 장치 천공 카드 천공 카드 키보드, 마우스 대규모 병령처리 시스템 애니악, 에드박 IBM 논리적 추론을 지원하는 연산기능 기계어, 어셈블리어 포트란, 코볼 파스칼, 베이직 객체지향언어 논리프로그램, 인공지능기법, 병렬처리 개념을 내포하는 추상적 언어 제공 다중 프로그래밍 방식 소프트웨어 체계 확립 운영체제 방식 시분활, 바이트 단위 컴퓨터 ..
2023.03.06
no image
[백준 2477번 문제, JAVA] 참외밭
문제 시골에 있는 태양이의 삼촌 댁에는 커다란 참외밭이 있다. 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 어떻게 알아낼 수 있는지 골똘히 생각하다가 드디어 좋은 아이디어가 떠올랐다. 유레카! 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다. 1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이다. 다행히도 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향이었다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계 길이를 모두 측정하였다. 예를 들어 참..
2023.03.06
728x90
반응형

문제

지민이는 전체 페이지의 수가 N인 책이 하나 있다. 첫 페이지는 1 페이지이고, 마지막 페이지는 N 페이지이다. 각 숫자가 전체 페이지 번호에서 모두 몇 번 나오는지 구해보자.


코드

import java.io.*;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = 1;
        int b = Integer.parseInt(br.readLine());
        int[] counts = new int[10];
        int digit = 1;

        while(a <= b) {
            if (b % 10 != 9) {
                calc(b, counts,digit);
                b--;
            }
            if (b < a) {
                break;
            }
            if (a % 10 != 0) {
                calc(a, counts, digit);
                a++;
            }
            if (a % 10 == 0 && b % 10 == 9) {
                for (int i = 0; i < 10; i++) {
                    counts[i] += (b / 10 - a / 10 + 1) * digit;
                }
                digit *= 10;
                a /= 10;
                b /= 10;
            }
        }
        Arrays.stream(counts).forEach(i->System.out.print(i + " "));
    }

    public static void calc(int n, int[] counts, int digit) {
        while (n > 0) {
            counts[n % 10] += digit;
            n /= 10;
        }
    }
}

해결

정신건강에 해끼치는 것을 싫어하는 사람은 쳐다보지말자
 
 


참고

https://www.slideshare.net/Baekjoon/baekjoon-online-judge-1019

Baekjoon Online Judge 1019번 풀이

https://www.acmicpc.net/problem/1019 "책 페이지" 문제 풀이입니다.

www.slideshare.net

 
밑에 이거는 시간 초과나는 일일이 비교해서 카운팅하는 방법

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        long input = Long.parseLong(br.readLine());
        List<Long> counts = new ArrayList<>(Collections.nCopies(10, 0L));

        for (long i = 1; i <= input; i++) {
            String[] tokens = String.valueOf(i).split("");
            for (String token : tokens) {
                counts.set((int)Long.parseLong(token), counts.get((int)Long.parseLong(token)) + 1L);
            }
        }
        StringBuilder sb = new StringBuilder();
        counts.forEach(i -> sb.append(i).append(" "));
        System.out.println(sb);
    }
}

 
 

728x90
반응형
728x90
반응형

to 부정사

문장에서 주어, 목적어, 보어, 부사 등의 역할을 한다.

to + 동사원형 형태

 

to 부정사의 문장 역할

주어 역할

To consider customers' needs is critical at this point.

고객의 요구를 고려하는 것은 이 시점에서 매우 중요하다.

* to부정사 주어는 보통 가주어 it으로 대체되고 문장 맨 뒤로 옮겨지는 경우가 많다
* It is critical to consider customers' needs at this point.
* to부정사가 주어로 나올 때는 단수 명사로 받아친다.
* 여기서 ' 기호는 복수명사의 소유격을 나타낸다.
* 일반적으로 명사 뒤에 s를 붙이면 소유격을 의미하는데
 복수명사도 s를 붙여야해서
* 의미 혼란이 생기는 것을 방지하기 위해 복수 명사의 소유격을 나타낼 때는 ' 기호를 표기한다

 

목적어 역할

The company agreed to provide us with the necessary information.

그 회사는 우리에게 필요한 정보를 제공하는 것에 동의했다.

 

주격 보어 역할

Our mission is to increase work efficiency at the factory.

우리의 임무는 공장에서 업무 효율성을 높이는 것이다.

* <목적> is to <do>
* 목적
* mission
* goal
* objective
* purpose

 

목적격 보어 역할

The consultant advised us to reduce the overtime pay given to the staff.

컨설턴트는 직원들에게 주어지는 오버타임 수당을 줄이라고 우리에게 권고했다.

 

to 부정사의 형용사적 역할

to 부정사는 명사 뒤에서 명사를 수식하는 후치 형용사 역할을 할 수 있다.

 

명사 + to 부정사 형태

 

 

Applicants should have the ability to deal with different financial programs.

지원자들은 다양한 재무관리 프로그램을 다룰 능력을 갖추어야 한다.

 

to 부정사의 부사적 역할

to 부정사는 문장에서 목적, 원인, 결과 등의 의미로 부사의 역할을 할 수 있다.

 

목적 (~하기 위해서)

To promote the new product, the company has decided to hire a new marketing manager.

신 제품을 홍보하기 위해서, 회사는 새로운 마케팅 매지러를 고용하기로 했다.

* '~ 하기 위해서' 라는 의미를 표현할 때 to부정사 앞에 in order to를 붙이기도 한다.

 

원인 (~하니, ~해서)

We are pleased to announce the release of our new Web site.

우리의 새 웹사이트가 개설되었음을 알리게 되어 기쁘게 생각합니다.

 

결과 (결국 ~하게 되었다)

I called the store only to find out the item was out of sock.

나는 상점에 전화해서 결국 그 물건이 재고가 없다는 것만 알게되었다.

 

 

 

연습문제

1. The purpose of the workshop is _____ new employees with all the necessary information.

 

(a) provide

(b) provided

(c) to provide

(d) provision

 

정답

 

(c)

 

 

2. In order ____ out what its customers want, the firm has decided to condict a comprehensive survey.

 

(a) find

(b) finding

(c) to find

(d) found

 

정답

 

(d)

 

 

 

동사/형용사 + to부정사

to부정사와 함꼐 어울려 자주 쓰이는 동사와 형용사

 

동사+to부정사

 

동사 + 목적어 + to부정사

 

The consultant didn't allow us to spend more money on marketing.

그 컨설턴트는 우리가 마케팅에 더 많은 돈을 쓰는 것을 허락하지 않았다.

 

형용사/과거 분사 +  to부정사

 

You will be eligible to get free tickets or discounts on selected items.

당신은 무료 티켓을 받거나 몇몇 물건들을 할인 받을 수 있는 자격을 얻게 될 것이다.

 

 

728x90
반응형
728x90
반응형

문제

김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 한다. 이긴 사람은 다음 라운드에 진출하고, 진 사람은 그 라운드에서 떨어진다. 만약 그 라운드의 참가자가 홀수명이라면, 마지막 번호를 가진 참가자는 다음 라운드로 자동 진출한다. 다음 라운드에선 다시 참가자의 번호를 1번부터 매긴다. 이때, 번호를 매기는 순서는 처음 번호의 순서를 유지하면서 1번부터 매긴다. 이 말은 1번과 2번이 스타를 해서 1번이 진출하고, 3번과 4번이 스타를 해서 4번이 진출했다면, 4번은 다음 라운드에서 번호 2번을 배정받는다. 번호를 다시 배정받은 후에 한 명만 남을 때까지 라운드를 계속 한다.

마침 이 스타 대회에 임한수도 참가했다. 김지민은 갑자기 스타 대회에서 우승하는 욕심은 없어지고, 몇 라운드에서 임한수와 대결하는지 궁금해졌다. 일단 김지민과 임한수는 서로 대결하기 전까지 항상 이긴다고 가정한다. 1 라운드에서 김지민의 번호와 임한수의 번호가 주어질 때, 과연 김지민과 임한수가 몇 라운드에서 대결하는지 출력하는 프로그램을 작성하시오.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

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

        String[] input = br.readLine().split("\\s+");
        int[] user = new int[2];
        user[0] = Integer.parseInt(input[1]);
        user[1] = Integer.parseInt(input[2]);

        int count = 0;
        while (user[0] != user[1]) {
            if (user[0] > 1) {
                user[0] = (int) Math.ceil((float) user[0] / 2);
            }

            if (user[1] > 1) {
                user[1] = (int) Math.ceil((float) user[1] / 2);
            }

            count++;
        }
        System.out.println(count);
    }
}

해결

인원수가 11명이고 5번째, 9번째가 만날 때 까지 대진표를 그려봤다

그랬더니 현재 번호를 2로 나누었을 때 나머지를 올림한 것으로 계속 나와서 계속 그려봤는데

몫이 1일 때 까지 반복한 횟수가 경기 횟수가 되는 것을 볼 수 있었다


참고

링크

 

 

 

 

728x90
반응형
728x90
반응형

문제

시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다.

dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 exe인 것이 모두 나온다. 이때 두 번째 문자는 아무거나 나와도 된다. 예를 들어, acb.exe, aab.exe, apb.exe가 나온다.

이 문제는 검색 결과가 먼저 주어졌을 때, 패턴으로 뭘 쳐야 그 결과가 나오는지를 출력하는 문제이다. 패턴에는 알파벳과 "." 그리고 "?"만 넣을 수 있다. 가능하면 ?을 적게 써야 한다. 그 디렉토리에는 검색 결과에 나온 파일만 있다고 가정하고, 파일 이름의 길이는 모두 같다.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(reader.readLine());
        List<String> inputs = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            inputs.add(reader.readLine());
        }

        List<Integer> differences = new ArrayList<>();
        for (int i = 0; i < inputs.get(0).length(); i++) {
            boolean isDiff = false;
            for (int j = 0; j < inputs.size() - 1; j++) {
                if (inputs.get(j).charAt(i) != inputs.get(j + 1).charAt(i)) {
                    isDiff = true;
                    break;
                }
            }
            if(isDiff) {
                differences.add(i);
            }
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < inputs.get(0).length(); i++) {
            if (differences.contains(i)) {
                sb.append("?");
            } else {
                sb.append(inputs.get(0).charAt(i));
            }
        }

        System.out.println(sb);
    }
}

해결

생각


참고

링크

 

 

 

728x90
반응형
728x90
반응형

명사

명사주어, 목적어, 보어의 역할을한며, 가산 명사, 불가산 명사로 나눌 수 있다.

 

주어 역할 (은, 는, 이가)

Applications should be submitted by the end of the week.

지원서는 이번 주 말까지 제출되어야 한다.

 

목적어 역할 (을, 를)

You should send your application by the end of the week.

 

보어 역할

What we need at the moment is your participation.

우리가 지금 필요로 하는 것은 당신의 참여입니다.

 

가산 명사, 불가산 명사

불가산 명사는 a(an), -s 를 쓰면 안된다

* 가산 명사는 너무 많기 때문에 불가산 명사를 외우자
* 불가산 명사에서 중요한 것 : staff, equipment, information, furniture

 

복합 명사

N1 + N2 = N3 (복합 명사) 즉, 두 개 이상의 단어가 결합된 새로운 단어

N2를 기준으로 셀 수 있는지, 셀 수 없는지 판단한다.

 

If there is a job opening, Mr. Wilson will let you know right away.

만일 공석이 나게 되면, Wilson 씨는 즉각 당신에게 알려줄 것이다.

 

대명사

대명사는 명사를 대신해서 쓰이는 말로, 인챙대명사, 재귀 대명사, 부정 대명사 등이 있다

 

인칭대명사

 

재귀 대명사

주어와 목적어가 같을 때 목적어 자리에 쓰거나, '직접'이라는 의미로 주어를 강조할 때 쓴다.

 

I, You, he : myself, yourself(단수)/yourselves(복수), himself

she, they, we : herself, themselves, ourselves

 

The new president introduced himself at the opening ceremony.

신임 사장은 개회식에서 자신을 소개했다. (주어 = 목적어)

 

The manager herself went to the airport to greet the clients.

매니저는 직접 고객들을 맞이하기 위해 공항으로 갔다. (herself -> '직접' 이라는 의미의 강조 용법)

 

부정 대명사

명사의 양이나 수를 나타내는 부정대명사는 some, any, most, each, either 등이 있다

Some of the items on the agenda are hard to understand.

회의 안건 중 몇몇은 이해하기가 힘들다

 

연습문제

1. The catering company announced the grand opening of ______ first restaurant in the downtown area.

(a) it

(b) its

(c) it's

(d) his

 

정답 

 

(b)

 

빈칸 앞에 전치사 of가 있는데 전치사 뒤에는 명사가 나온다

명사 restarant가 이미 있으므로 명사 앞에 소유격이 나와야한다

보기에서 소유격은 its. its는 it의 소유격 형태이다

 

2. The food critic visited all the restaurants ____ and wrote a review on each of then

(a) her

(b) she

(c) hers

(d) herself

 

정답

 

(d)

 

주어 동사 목적어 형태가 나왔는데 -self 형태가 부사자리에 오는 것을 좋아한다

728x90
반응형
728x90
반응형

동사에 따른 수동태

능동태는 주어가 행위의 주체지만, 수동태는 행위의 영향을 받는 대상이 주어가 된다.

 

수동태 만들기

주어와 목적어의 위치를 바꾸고, 동사는 be + v-ed 형태로 고친다.

능동태의 주어는 by + 주어를 쓰고 생략 가능하다

 

능동태

The company recoreded the conference call.

회사는 컨퍼런스콜을 녹음했다.

 

수동태

The conference call was recoreded by the company.

컨퍼런스콜이 회사에 의해 녹음되었다.

 

동사 시제 별 수동태 형태

현재시제 record -> is/are recorded

현재진행시제 is recording -> is being recorded

 

동사에 따른 수동태

4형식 동사의 수동태

목적어가 두 개인 4형식 동사는 두 개의 수동태가 있다

간목주어일 경우 직목을 동사 뒤에 바로 쓰면 되지만,

직목주어일 경우 전치사가 나온다

 

능동태

The company gave Ms. Lee a laptop.

                                  간목       직목

회사가 Lee 씨에게 노트북을 주었다.

 

수동태1 (간접목적어 = 주어)

Ms. Lee was given a laptop by the company.

Lee씨가 회사에 의해 노트북을 받았다.

 

수동태2 (직접목적어 = 주어)

A laptop was given to Ms. Lee by the company.

노트북이 회사의 의해 Lee씨에게 주어졌다.

 

대표적인 4형식 동사

give, offer(제공하다), send, write, charge(청구하다), grant수여하다), award(수여하다), assign(할당하다)

 

연습문제

1. Some revisions _____ to the design of the new magazine.

(a) made

(b) have made

(c) have been made

(d) have been making

 

정답 

 

(c)

 

(b)가 정답이 아닌 이유have + p.p 는 능동태 형태이다

 

5형식 동사의 수동태

목적보어로 명사, 형용사, to부정사가 가능한 5형식 동사의 수동태가 있다

<주어 + 동사 + 목적어 + 목적 보어> 5형식은 수동태로 바꾸면 수동태 동사 (be + p.p) 뒤에

목적 보어가 남는다.

* make, keep, find, consider + 목적어 + 형용사

 

명사

The manager called the bell boy Frankie.

메니저는 벨보이를 Frankie라고 불렀다

 

The bell boy was called Frankie by the manager.

벨보이는 매니저에 의해 Frankie로 불렸다

 

형용사

All the staff consider the director creative.

모든 직원들은 그 책임자를 창의적이라고 여긴다.

 

The director is considered creative by all the staff.

그 책임자는 모든 직원들에 의해 창의적이라고 여겨진다.

 

to 부정사

Mr. Taylor encouraged us to attend the meeting.

Taylor 씨는 우리가 미팅에 참석하도록 권고했다.

 

We were encouraged to attend the meeting by Mr. Taylor.

우리는 Taylor 씨에 의해 미팅에 참석하도록 권고 받았다.

 

* 대표적인 5형식 동사: consider(여기다), call, elect(선출하다), appoint(임명하다), name(선정하다), make, find(알게되다)

 

5형식동사 (목적보어 = to부정사)의 수동태

 

연습문제

2. College tuition payments for the next semester must be _____ by the end of the month.

(a) receive

(b) received

(c) to receive

(d) being received

 

정답 

 

(b)

 

이게 시제가 미래를 나다내는 the end of the month나 next semester가 있어도

현재 완료 진행형이 정답이지 않나 싶은데 이미 must be received에서 의미가 강조되고 있기 때문에

must be being received를 쓰기보다는 bust be received가 어법상에서도 자연스럽고 자주 쓰이는 표현이라고 한다

 

 

 

 

728x90
반응형
728x90
반응형

컴퓨터 기초

과거 사람들의 계산 방법

주판 -> 천공 카드 -> 기계식 계산기 -> 컴퓨터

 

컴퓨터의 발전 단계 역사

1세대 2세대 3세대 4세대(~ 현재) 5세대(미래~) 6세대
진공관 트랜지스터 직접 회로 (IC) 고밀도 직접회로 인공지능과 대화  
자기 코어 자기코어 IC, 자기 코어 vlsi, lsi 음성 명령  
자기 드럼 자기 디스크 자기 디스크 자기 디스크 초고속 장치  
천공 카드 천공 카드   키보드, 마우스 대규모 병령처리 시스템  
애니악, 에드박 IBM     논리적 추론을 지원하는 연산기능  
기계어, 어셈블리어 포트란, 코볼 파스칼, 베이직 객체지향언어 논리프로그램, 인공지능기법, 병렬처리 개념을 내포하는 추상적 언어 제공  
  다중 프로그래밍 방식 소프트웨어 체계 확립      
  운영체제 방식 시분활, 바이트 단위      

 

컴퓨터 관련 역사적 인물

폰노이만

프로그램 내장 개념을 최초로 도입한 컴퓨터 에드박 개발

 

컴퓨터 구성요소

 

연산장치(ALU)

사칙 연산 및 논리 연산을 실행, 자료 비교, 판단, 이동, 편집 등등

 

제어장치

프로그램의 명령을 해석하고 지시하고 감독함

입출력장치, 기억장치, 연산장치의 동작을 제어

해독된 명령을 각 장치에 보내 지시

 

하드웨어

물리적인 기반

중앙처리장치, 롬, 램, 메인보드

 

중앙처리장치

제어장치, 연산장치, 레지스터

 

주기억장치

 

보조기억장치

하드디스크, SSD

 

소프트웨어

논리적인 바탕

컴퓨터 프로그램

 

시스템 소프트웨어

운영체제

 

응용 소프트웨어

문서 프로그램

게임

 

프로그래밍 정의

프로그램에서 사용되는 명령어를 이용하여 프로그램을 제작하는 것

 

컴퓨터에서 2진수 체계를 사용

(1010)_2, (1110)_2

 

8진법

(156)_8 = (110)_10

1 X 8^2 + 5 X 8^1 + 6 X 8^0 = 110

 

부동소수점

지수부와 가수부로 나누어서 표현

(4바이트) 부호비트(31) + 지수부(30~23) + 가수부(22~0)

소수점은 지수부와 가수부 사이에 있다고 가정

 

아스키코드

패리티비트+숫자비트

 

BCD코드

패리티비트+존비트+숫자비트

 

EBCDIC 코드

존A비트 존B비트 숫자비트

 

 

 

728x90
반응형
728x90
반응형

문제

시골에 있는 태양이의 삼촌 댁에는 커다란 참외밭이 있다. 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 어떻게 알아낼 수 있는지 골똘히 생각하다가 드디어 좋은 아이디어가 떠올랐다. 유레카! 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다.

1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이다. 다행히도 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향이었다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계 길이를 모두 측정하였다.

예를 들어 참외밭이 위 그림과 같은 모양이라고 하자. 그림에서 오른쪽은 동쪽, 왼쪽은 서쪽, 아래쪽은 남쪽, 위쪽은 북쪽이다. 이 그림의 왼쪽위 꼭짓점에서 출발하여, 반시계방향으로 남쪽으로 30m, 동쪽으로 60m, 남쪽으로 20m, 동쪽으로 100m, 북쪽으로 50m, 서쪽으로 160m 이동하면 다시 출발점으로 되돌아가게 된다.

위 그림의 참외밭  면적은 6800m2이다. 만약 1m2의 넓이에 자라는 참외의 개수가 7이라면, 이 밭에서 자라는 참외의 개수는 47600으로 계산된다.

1m2의 넓이에 자라는 참외의 개수와, 참외밭을 이루는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지나는 변의 방향과 길이가 순서대로 주어진다. 이 참외밭에서 자라는 참외의 수를 구하는 프로그램을 작성하시오.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {
    private static final String[] code = new String[]{"231414", "231424", "232314", "231314"};

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(reader.readLine());

        List<Side> sides = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            String[] input = reader.readLine().split("\\s+");
            sides.add(new Side(Integer.parseInt(input[0]), Integer.parseInt(input[1])));
        }

        int direct = sortAndCheck(sides);

        switch (direct) {
            case 0:
                System.out.println((sides.get(0).l * sides.get(1).l - sides.get(3).l * sides.get(4).l) * n);
                break;
            case 1:
                System.out.println((sides.get(1).l * sides.get(2).l - sides.get(4).l * sides.get(5).l) * n);
                break;
            case 2:
                System.out.println((sides.get(4).l * sides.get(5).l - sides.get(1).l * sides.get(2).l) * n);
                break;
            case 3:
                System.out.println((sides.get(0).l * sides.get(5).l - sides.get(2).l * sides.get(3).l) * n);
                break;
            default:
                break;
        }
    }

    public static int sortAndCheck(List<Side> sides) {
        StringBuilder sb = new StringBuilder();
        boolean findCode = false;

        for (int i = 0; i < code.length; i++) {
            for (int j = 0; j < 6; j++) {
                for (Side side : sides) {
                    sb.append(side.s);
                }
                if (code[i].equals(sb.toString())) {
                    findCode = true;
                    break;
                } else {
                    sb.setLength(0);
                    sides.add(sides.get(0));
                    sides.remove(0);
                }
            }
            if (findCode) {
                return i;
            }
        }
        return -1;
    }

    static class Side {
        int s, l;
        Side(int s, int l) {
            this.s = s;
            this.l = l;
        }
    }
}

해결

 

큰 사각형에서 작은 사각형을 빼면 답이 나오긴하는데 방향이 자기 멋대로 주어지기 때문에

주어진 방향과 일치하도록 정렬해야한다

 

그래서 임의의 좌표에서 시작하는 가능한 방향을 미리 찾고

그 방향대로 정렬을 한 다음 미리 정한 인덱스로 답을 구할 수 있었다

 


참고

링크

 

 

 

728x90
반응형