https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 문제생각 앞서 풀었던 구간 합 구하기4랑 비슷하게 해결하면 될거라고 생각했습니다. 그래서 가로 누적합 또는 세로 누적합을 구하고 주어진 구간에 따라 누적합을 더하고 구간이 아닌 부분의 누적합을 빼는 방식으로 다가가려고 하였습니다. 그런데 어디서부터 잘못된건지 시간초과가 어마어마하게 났습니다... 아래의 코드는 시간초과가 난 코드입니다.(이 외에도 시간초과..
https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제생각 굉장히 쉽게 생각하였습니다. 입력을 받고 리스트 슬라이싱을해서 sum() 연산만 하면 된다고 생각했고 그런 방식으로 코드를 구성하였습니다. 그런데 시간초과가 발생하였습니다!! 알고보니 리스트 슬라이싱의 시간복잡도가 꽤 높았던 것입니다. 무려 O(k)!!! 여기서 k는 슬라이싱을 해야하는 원소의 개수입니다. 이 슬라이싱 작업을 최대 10만번 해야했고 sum 연산까지 ..
https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 문제생각 제한시간도 충분하고 입력받는 수나 리스트의 크기가 그렇게 크지 않아서 간단한 구현 문제라고 생각하였습니다. (정답비율이 19프로라서 문제 풀기 전에 겁먹었습니다...ㅎ) 남학생의 경우에는 단순히 반복문을 돌려 배수를 찾아 이를 바꿔주기만하면 끝납니다. 여학생의 경우에는 좌우대칭을 확인해야하는데 저는 투 포인터 방식을 사용하여 확인하고 바꿔주었습니다. 여기서 투 포인터 방식이란 두개의..
https://www.acmicpc.net/problem/19637 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net 문제생각 처음에는 n번 입력 받는 값을 dictionary 형태로 저장하고 m개의 값이랑 비교를 하면 될 것 같았습니다. 하지만 시간 제한과 입력받는 값의 범위를 보아하니 위의 방법은 통하지 않겠다고 생각하였습니다. 그래서 리스트에 인덱스도 사용하고자 했지만 입력받는 범위도 10^9 라서 메모리초과가 날거 같았습니다. 한참 고민하다가 알고리즘 분류를 보았..
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제생각 1은 단순히 합을 구해서 평균을 구하면되는 것이고 2는 수의 개수가 홀수개라고 하였으니 정렬 후 n//2번째 인덱스를 선택하면 되는 문제였다. 3번 최빈값에서 조금 고민을 하였다. 나는 입력을 받을 때 dic 형식으로 key는 숫자, value는 숫자의 개수로 정하여 이를 반복문으로 비교하여 최빈값을 구하도록 하였다. 4번은 정렬된 리스트에서 마지막인덱스와 처음 인덱스를 빼주면되는 문제였다. 문제코드 ..
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제생각 입력을 받고 단순히 비교를 통해 값을 구하면 된다고 생각하였다. 정답코드 n=int(input()) human=[] for _ in range(n): w, h=map(int, input().split()) human.append([w, h]) for i in range(n): num=1 for j in range(n): if(human[i][0]
- Total
- Today
- Yesterday
- 파이썬
- 회고
- 백준#서강근육맨#20300
- controller
- 프로그래머스
- java
- 스프링
- arraylist
- 사탕 게임#백준#3085
- querydsl
- 백준
- 4673번
- HTTP#HTTP특징
- Spring
- 서블릿#Servlet
- 백준#잃어버린 괄호#1541
- this()
- 11659
- 덧칠하기
- list
- 1978
- 오류
- springboot
- MVC
- 자바
- 게시판#자바#JPA#Entity
- 대충 만든 자판
- 7568
- 백엔드#게시판
- 1316번
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |