전체 글 143

[백준] 1330 두 수 비교하기, 9498 시험 성적, 2753 윤년, 14681 사분면 고르기

조건문 단계 점이 어느 사분면에 있는지 알아내는 문제 www.acmicpc.net 조건문으로 푸는 문제들만 모아놓은 카테고리에서 문제를 풀었다. 참고로 단계별로 풀어보기 링크는 다음과 같다.(https://www.acmicpc.net/step) 정답 # 1330 두 수 비교하기 A, B = map(int, input().split()) if A > B: print('>') elif A == B: print('==') else: print('

[백준] 2884. 알람 시계

2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리..

[백준] 2588. 곱셈

2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. 정답: n = int(input()) m = input() sum = 0 for i in range(2, -1, -1): num = int(m[i]) * n print(num) sum += num * (10 ** (2-i)) print(sum) 처음에 별 생각 없이 10으로 계속 나눠서 100의 자리 숫자부터 1의 자리 숫자 순으로 출력했는데, 1의 자리..

[백준] 1000 A+B, 1008 A/B

1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 정답: # 1000 A+B n, m = map(int, input().split()) print(n + m) # 1008 A/B n, m = map(int, input().split()) print(n / m) 누구나 풀 수 있는 문제이지만 좀 더 코드를 줄여서 풀려면 map() 함수를 사용해서 처음에 입력받을 때부터 int 형으로 바꿔주는 것이 좋다.

[백준] 10172. 개

10172번: 개문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...www.acmicpc.net아래 예제와 같이 개를 출력하시오.|\_/||q p| /}( 0 )"""\|"^"` |||_/=\\__|정답:#10172 개print('''|\\_/||q p| /}( 0 )\"\"\"\\|\"^\"` |||_/=\\\\__|''')처음 제출했을 때 출력 형식이 안 맞는다고 떠서 왜인가 했더니 '''코드'''이런 식으로 불필요하게 앞 뒤로 공백을 줘서 그랬었다는... 이야기...

[백준] 10171. 고양이

아래 예제와 같이 고양이를 출력하시오 \ /\ ) ( ') ( / ) \(__)| print() 함수로 문자열을 출력할 때 \ ' " 같은 애들을 어떻게 출력해야 할지 알려주는 귀여운 문제. 정답은 아래처럼 작성했다. print('''\ /\\ ) ( \') ( / ) \(__)|''') print() 에서 여러 줄을 쓸 때는 ''' ''' 혹은 """ """ 를 사용한다. print()에서 \을 문자열로 출력하고 싶다면 \\ 이렇게 두 개를 써준다. print()에서 ', "을 출력하고 싶다면 앞에 \을 붙여 \' , \" 이런 식으로 써주면 된다.

[알고리즘 공부] 2. 배열, 동적 배열, 단일 연결 리스트

배열의 삽입, 삭제, 탐색에 드는 시간 복잡도 삽입 : 최악의 경우, 가장 앞에 삽입 시 O(N) (새로운 값 들어오면 다른 값들이 하나씩 자리 옮겨야 함. 단 맨 끝에 새로운 값 삽입하는 경우는 O(1)) 삭제: 최악의 경우, 가장 앞에 걸 삭제 시 O(N) (다른 값들이 하나씩 자리 옮겨야 함. 단 맨 끝에 삭제하는 경우는 O(1)) 탐색: 최악의 경우, 찾는 값이 맨 끝에 있을 시 O(N) (처음부터 끝까지 탐색, 그러나 인덱스로 찾을 시 k번째 원소를 찾으려면 (k-1)인덱스를 참조하면 돼서 O(1) 걸림.) 파이썬 배열 메서드의 시간 복잡도 arr.find(x) = 처음부터 끝까지 탐색함.최악의 경우 O(n) arr.remove(x) = 삭제 후 이동. 최악의 경우 O(n) 동적 배열 정적 배열..

[알고리즘 공부] 1. 시간, 공간 복잡도

1) 시간, 공간 복잡도 공간적 효율성 : 연산량 대비 얼마나 적은 메모리 공간을 요하는가. 시간적 효율성: 연산량 대비 얼마나 적은 시간을 요하는가. 효율성을 뒤집어 표현하면 복잡도가 되며, 이 복잡도가 높을수록 효율성은 낮아진다. 복잡도의 점근적 표기 이전에 재귀식에선 T(n)으로 표시했으나, 주로 Big-Oh 표기법 사용(예: O(n)) 1) 빅 오 표기 빅 오 표기는 복잡도의 점근적 상환이다. 가령 2a² + 2a + 2 라고 수식이 나올 경우, 상수를 빼고 O(n²)로 표기. f(n) = n²+n이고 g(n) = n³일때 f(n) = O(g(n))으로 나타낼 수 있음. f(n)의 차수가 g(n)의 차수보다 같거나 작다는 뜻. 예시) n^100 = O(2^n)은 참임. n이 충분히 크다고 가정했을..

[UX 원칙 101] #9, #10, #11, #12

#9. 텍스트만이 아니라 버튼 전체가 클릭 가능하게 만들어라 프론트엔드 개발하던 중에 페이지 이동을 버튼 내의 '글자를 눌렀을 때' 작동하게 한 적이 종종 있었는데, 지금 생각해보니, 굉장히 불편한 UX를 만드는 방법이었다. 버튼 자체에 라우터를 연결해서 사용자가 버튼의 어디를 눌러도 이동할 수 있도록 할 필요가 있다. #10. 새로운 컨트롤을 제멋대로 만들지 마라. 하루에도 몇 십 개의 새로운 앱이 나옴에도 불구하고, 사용자들이 그 앱들을 익숙하게 사용할 수 있는 것은 앱의 동작 방식(UX)가 다른 앱들과 비슷하기 때문이다. 트위터의 소위 '슥뽕'이라 불리는(정식 명칭은 트위티 tweety 다.) 아래로 스와이프 해서 새로 업데이트 된 피드를 보는 방식처럼, 사용하기 쉽고 정말 좋은 컨트롤이 아닌 이상..

Read/UX 원칙 101 2022.07.06