목록전체 글 (12)
차근차근
https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 간단 설명 : 자연수 A를 B번 곱한 수를 C로 나눈 나머지 구하기 시간 제한은 0.5초인데 입력 값인 A, B, C의 범위가 1부터 2,147,483,647 이니까 시간복잡도를 잘 생각해서 코드를 짜야했다. 1. 나머지 연산 분배법칙 (A * B)%Q = (A%Q) * (B%Q) A와 B를 곱해서 나머지 연산을 나눈 값과 A의 나머지, B의 나머지를 곱한 값이 같다는 뜻이다 이유를 간단히 설명해보면 A = aQ + R1 ( a = A를 Q로 나눴을 때 몫, R..
해당 문제를 풀면서 고민했던 과정들을 정리해봤다 ੭ ᐕ)੭ 자 이번 문제는 (1)3으로 나누기 (2)2로 나누기 (3)1빼기 3가지 방법을 써서 가장 적은 횟수로 1을 만드는 경우의 최솟값를 출력하는 것이다 문제를 이해하기 쉽게 10을 1로 만드는 경우 과정을 그려보면 아래와 같다 3이나 2로 나누고 1로 빼면서 1이 만들어지면 멈춘다 구현은 큐를 이용해서 10을 넣고 꺼내면서 10/3 10/2 10-1 한 값을 큐에 넣고 다시 그 값을 꺼내면서 a/3 a/2 a-1 한 값을 큐에 넣는 과정을 반복할 것이다 여기서 생각해야 할 것은 (1) 꺼낸 값이 1이 되면 반복을 멈춘다 (2) 위의 3과 4처럼 이미 거쳐간 숫자는 다시 연산할 필요가 없으므로 visited 배열을 만들어서 사용한 수는 큐에 넣지 않고..
백준 2740번 - 행렬곱셈 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 보기 편하게 나타내면 다음과 같다 간단히 곱하는 과정을 보면 반복되는 여부에 따라 for문에 3개로 나눠진다 // 간단히 표현해 보면 for(i < A의 N){ for(j < B의 K){ for(t < A의 M){ a[i][k] * b[k][j] } } } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ..
1. File > settings 2. Editor > Color Scheme > Java 3. Inherit values from 체크해제 4. 원하는 color로 변경
명령어 가끔 까먹을 때 있어서 정리해두는 목적 ★ git 초반 설정, 업데이트1. git remote -v- 깃허브 주소와 연동 됐는지 확인하기(?)만약 이게 되있지 않다면git remote add origin [repository 주소] 해서 연동하기! 2. git status- 현재 상태 확인하기 3. git add .- 현재 상태를 인덱스에 추가 ! 이때 등록이 안된다면잘못된 곳에서 git을 시도했을수도 있으므로dir(window 터미널 명령어)로 현재 디렉토리 위치를 확인해보기! 4. git commit -m "second commit" - 현재 상태 저장 5. git push- 올리기 ! 사용자 등록이 안돼있을 수 있으므로git config --global user.name "사용자 이름"gi..
오늘 한 건 Paintbox 클론 코딩! 이번에 하면서 습득한 건 1. 안된다면 div를 써라(?) 2. 반응형은 grid 일단 나는 position: relative를 안 써봤다. 그래서 창 크기 줄일때마다 사진이 짜부되는 게 굉장한 스트레스 였는데 grid는 요소마다 비율을 지정할 수 있다! flex도 요소마다 줄어들거나 늘어나는 정도를 정할 수 있지만 여러 자식이 있을 때 이 자식들이 같은 비율로 줄어드는 건 못하더라.. 50%를 주거나하면 어떻게 될 것 같은데 그냥 grid에서 1대1 주는 게 맘이 편하다 ( ´△`) grid를 준다고 하더라도 창이 많이 줄었을 때 짜부되는 건 막을 수 없더라.. (사이트 보니까 창 크기가 어느정도 줄면 여백이 바뀐다던가 레이아웃이 다르더라 이것도 다 만들어야겠지..
니꼬쌤 강의의 CSS Layout 마스터클래스의 첫 번째 클론코딩! Best Horror Scenes 사이트를 클론코딩했다. 일단 이번 강의에서 한 부분은 처음에 reset.css로 먼저 리셋 해주는 것 * { box-sizing: border-box; } 를 기본으로 해두는 거! box-sizing은 요소의 높이와 너비를 계산하는 방법을 지정하는 건데, content-box는 너비가 100px일때 테두리와 안쪽 여백이 여기서 더해진다. border-box는 테두리와 안쪽 여백 + 안의 크기를 100px로 만든다. header (고정 되있는 부분)의 요소들은 display: flex로 한다. flex로 하면 column으로 세로로 정렬되게 할 수 있고 justify-content로 요소 사이에 간격(?)..
[유튜브 동빈나님 알고리즘 강의를 듣고 정리하는 글] 선택 정렬은 숫자중에 가장 작은 값을 찾고 위치를 바꾸고, 그 다음으로 가장 작은 값을 찾고 위치를 바꾸는 걸 반복한다. 이를 코드로 표현하면 다음과 같다. public static void main(String[] args) throws IOException { // 가장 작은 숫자를 선택해서 앞으로 보낸다. > min이 필요 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int numbers[] = new int[n]; int min, tmp; // 수 입력받기 for(int i=0; i