전체 글 117

[백준 8911] 거북이 (Python)

문제 : https://www.acmicpc.net/problem/8911 8911번: 거북이 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져 www.acmicpc.net 1. 문제 이해하기 좌표 위에 거북이가 움직인 지점을 모두 포함하는 가장 작은 직사각형의 넓이 구하기 F : 한 눈금 앞으로, B : 한 눈금 뒤로, L: 왼쪽으로 90도 회전, R: 오른쪽으로 90도 회전 선분의 경우 넓이는 0 입력으로 테스트 케이스의 개수만큼의 테스트 케이스 결괏값을 출력하기 2. 문제 풀이 생각하기 방향을 조정하는 L, R이 있기 때문에 방향과 현재 좌표를 저장해야겠다고 생각..

Algorithm/Python 2021.07.10

[백준 1292] 쉽게 푸는 문제 (Python)

문제 : https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 1. 문제 이해하기 1부터 연속하는 숫자가 숫자의 개수만큼의 집합이 있습니다. (ex. 1 2 2 3 3 3 4 4 4 4...) 입력으로 구간의 첫 번째와 마지막 번째가 주어질 때, 구간에 속하는 숫자의 합을 출력 두 숫자는 1 이상 1000 이하 2. 문제 풀이 생각하기 연속된 숫자의 숫자 개수만큼의 1에서 1000까지 만들었습니다. (1000번째가 1000은 아닙니다.) 배열의 슬라이싱을 통해서 새로운 배..

Algorithm/Python 2021.07.10

[Programmers] 행렬 테두리 회전하기 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 1. 문제 이해하기 rows(행), columns(열)이 주어지고 (row x columns) 크기의 행렬에 좌에서 우로 1부터 숫자가 순서대로 적혀있습니다. queries가 2차원 배열로 주어지고, 각 query에는 [x1, y1, x2, y2] 형태로 저장되어 있습니다. 이는 x1 행 y1열부터 x2 행 y2 열까지의 영역에 해당하..

Algorithm/Swift 2021.07.10

[Programmers] 로또의 최고 순위와 최저 순위 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 1. 문제 이해하기 로또는 총 1~ 45까지의 숫자 중 6개 찍어서 맞추는 방식 로또 당첨 숫자(win_nums), 내가 찍은 숫자(lottos)가 주어졌을 때, 당첨 내용에 부합할 수 있는 가장 높은 순위와 낮은 순위를 배열로 출력 알아볼 수 없는 숫자(0)가 존재 2. 문제 풀이 생각하기 먼저 0이 아닌..

Algorithm/Swift 2021.07.10

[백준 16931] 겉넓이 구하기 (Swift)

문제 : https://www.acmicpc.net/problem/16931 16931번: 겉넓이 구하기 크기가 N×M인 종이가 있고, 종이는 1×1크기의 칸으로 나누어져 있다. 이 종이의 각 칸 위에 1×1×1 크기의 정육면체를 놓아 3차원 도형을 만들었다. 종이의 각 칸에 놓인 정육면체의 개수가 주어 www.acmicpc.net 1. 문제 이해하기 입력으로 좌, 우(n, m), 그리고 각 칸마다 올려진 블록의 개수를 2차원 배열로 주어진다. 총 겉넓이(위, 아래, 앞, 뒤, 좌, 우 넓이) 출력하기 2. 문제 풀이 생각하기 먼저 위아래는 (2차원 배열의 행 * 열 * 2), 좌, 우는 (좌의 겉넓이 * 2), 앞, 뒤도 (앞의 겉넓이 * 2) 구하면 된다고 생각했습니다. 처음에는 한 방향의 겉넓이를 ..

Algorithm/Swift 2021.07.06

[Programmers] 카카오 인턴십 - 경주로 건설 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 문제 설명에 앞서, 테스트 케이스 14, 24에서 막혀서 질문하기에 다른 분들..

Algorithm/Swift 2021.07.03

[Programmers] 2020 카카오 인턴십 - 보석쇼핑 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr Step 1. 문제 이해하기 gems 배열에는 보석들의 이름이 담겨있다. 모든 종류의 보석을 적어도 1개 이상 포함하면서 가장 짧은 연속하는 구간의 처음과 끝을 정수 배열로 출력 만약 가장 짧은 구간이 여러 개라면 시작 구간이 가장 작은 구간을 출력 배열의 크기는 최대 1 이상 100,000 이하 Step 2. 문제 풀이 생각하기 연속하면서 가장 짧은 구간이라고 해서 투 포인터를 떠올렸습니다. gems..

Algorithm/Swift 2021.07.02

[Programmers] 2020 카카오 인턴십 - 수식 최대화 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr Step 1. 문제 이해하기 숫자(999 이하)와 연산자('+', '-', '*')를 띄어쓰기 없이 포함한 문자열 변수 expression이 존재 문자열의 총길이는 3 이상 100 이하 연산자 우선순위를 임의로 설정하여 나온 우승상금(결괏값)의 절댓값이 가장 큰 값을 출력 Step 2. 문제 풀이 생각하기 연산자 우선순위 조합을 어떻게 구현할 것인지 ..

Algorithm/Swift 2021.07.02

[iOS / Storyboard] Auto Layout 여러 View에 적용하기(2)

이번에는 여러 view에 대한 Auto Layout을 적용해보겠습니다. [Step 1] view 3개 생성하기 먼저 green View에 제약조건을 모두 설정해보겠습니다. 아직 빨간 부분이 존재합니다. 이번에는 pupple View의 제약조건을 모두 설정해보겠습니다. green View의 제약조건은 모두 만족하는 것을 확인할 수 있습니다. [Step 2] pupple의 왼쪽 가장자리 제약조건을 선택하고 green의 왼쪽 가장자리에 맞추기 pupple의 왼쪽 가장자리가 green의 왼쪽 가장자리에 맞춰진 것을 확인할 수 있습니다. 여기서 왼쪽 Constant를 30으로 조정해보겠습니다. 왼쪽을 30으로 줄인 만큼 pupple의 크기가 줄어든 것을 확인할 수 있습니다. 왜 위치가 변하지 않고 크기가 줄어들었..

Storyboard 2021.07.01

[iOS / Storyboard] Auto Layout 개념 이해하기(1)

스토리 보드에서 화면을 그릴 때 사용하는 Auto Layout에 대해서 알아보겠습니다. Auto Layout(오토 레이아웃)이란 view 간의 제약 조건(Constraints)으로 view의 크기와 위치를 동적으로 지정하는 것을 말합니다. 여기서 제약조건에는 view의 높이, 너비, 수직 및 수평 중심, 그리고 view의 가장자리(Leading - 왼쪽, Trailing - 오른쪽, Top - 위, Bottom - 아래) 등이 있습니다. Auto Layout Guide 참고 내용입니다. Understanding Auto Layout Auto Layout Guide: Understanding Auto Layout developer.apple.com Auto Layout을 이용해서 Constraints를 설..

Storyboard 2021.06.30

[Algorithm / Swift / IDE] Swift로 알고리즘 공부하기 좋은 방법

Swift로 작성한 소스 코드를 Run 한 결과도 보고 싶고 클래스의 객체 내부에 함수가 뭐가 있는지 알고 싶고 구현하다가 막히는 부분 라인이 어디인지 디버깅하고 싶을 때! Xcode를 이용해서 문제를 해결할 수 있습니다. [Step 1] 새로운 프로젝트에서 Command Line Tool 생성하기 [Step 2] Run 해보기 결과가 잘 나오는 것을 확인할 수 있습니다. [Step 3] BreakPoint 설정해보기 라인 숫자를 클릭하면 BreakPoint를 설정할 수 있습니다. 이를 없애기 위해서는 드래그한 상태로 왼쪽으로 버리거나 cmd + Y를 이용해서 BreakPoint를 인식하지 못하게 할 수 있습니다. [Step 4] Debugging 해보기 디버깅을 통해서 변수에 생각한 값이 들어갔는지 확..

Algorithm/Swift 2021.06.25

[Programmers] 2020 카카오 인턴십 - 키패드 누르기 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr Step 1. 문제 이해하기 왼손, 오른손 엄지는 각각 '*', '#'에 위치해 있고 왼쪽 키패드(1, 4, 7)는 무조건 왼손이 클릭하고 오른쪽 키패드(3, 6, 9)는 오른손이 클릭 중앙 키패드(2, 5, 8, 0)를 클릭할 때는 왼손 또는..

Algorithm/Swift 2021.06.25