Loading...

중간에서 만나기 테크닉 - 저장하고 검사하는 것이 아니라 검사를 먼저하고 저장하기

5624번: 좋은 수 (acmicpc.net)  정수 배열에서 현재 위치 i번째 수 앞에 있는 수들 중 세 수의 합이 현재 위치 i번째 수와 같게 되는 경우,  그러한 수의 개수를 구하는 문제 "세 수"는 중복해서 선택해도 좋다 예를 들어 [-1,2,0]이면 0은 -1 -1 + 2 = 0이므로 이 조건에 만족하는 수이다 n이 최대 5000인데, 단순하게 짜면 $O(N^{4})$이라 매우 느리다 대충 이런 느낌 for i in range(n): a = A[i] for j in range(i): for k in range(i): for w in range(i): ..

2024. 5. 23. 02:12

배열을 뒤집었을때 생기는 반전 수의 개수 구하기

25339번: 반전 수와 쿼리 (acmicpc.net)  반전 수는 i P[j]인 (i,j)의 개수를 말한다. 배열이 [3,2,1]이면 반전수는 (인덱스 말고) (3,2), (3,1), (2,1)로 3개가 있다. l번, r번을 서로 교환하는 쿼리 [l,r]의 배열을 서로 뒤집는 쿼리가 주어질 때, 매 쿼리마다 수열의 반전 수를 2로 나눈 나머지를 구하는 문제 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 배열 길이와 쿼리 수가 엄청나다보니 단순한 방법으로는 시간초과 이 문제는..

2024. 5. 14. 23:32

python 리스트를 이용해 trie 구현하면서 개념 익히기

python에서는 trie가 class로 구현된 경우가 많아 꺼렸는데... 배열로 구현하는 법을 익혀서 기록해보기 https://deepdata.tistory.com/659 문자열 자료구조 Trie 알고리즘 기본기 배우기1. 문자열 단어 저장 'hello', 'hi', 'hey' 등을 저장하고자 할때, 생각할 수 있는 방법중 하나는 dictionary에 저장하는 것이다 d = {'hello':1, 'hi':1, 'hey':1} 단어를 key값으로 저장해두면, 특정 단어를 찾고자deepdata.tistory.com https://blog.encrypted.gg/1059 [실전 알고리즘] 0x1F강 - 트라이안녕하세요, 드디어 마지막 강이라니 가슴이 웅장해집니다. 마지막인만큼 난이도도 끝판왕일 수 있지만 개..

2024. 4. 27. 00:02

SQL 코딩테스트 복기 - JSON array에 들어있는 원소의 개수(JSON_LENGTH)

create table test (id INTEGER,A JSON);INSERT INTO test (id, A) VALUES (1, JSON_ARRAY('abc','def','aa','ded')),(2, JSON_ARRAY('dawd','qw','gqweq','asdqwweqw','fdsdqwe')),(3, JSON_ARRAY('nnwqsq','sdq'))  다음과 같은 테이블이 있다고 하자. 각 id별로 A 컬럼에 들어있는 배열의 원소의 개수를 구하고 싶다.    id 1번은 4개, id 2번은 5개, id 3번은 2개이다. 어떻게 가능할까? python처럼 배열을 순회할 수도 없고.. JSON_LENGTH라는 함수로 가능하다... 이걸 모르면 풀수가 없잖아 ㅡㅡ select id, A, JSON_LE..

2024. 4. 21. 04:12

Unity 기본7 - foreach, 연습문제 풀기

1. foreach 배열이나 컬렉션에서 모든 원소 각각을 한번씩 꺼내서 쭉 써보겠다는 의미의 반복문 foreach ((데이터타입) (변수명) in (컬렉션명)){반복 실행할 명령} 1) 배열 using System.Collections; using System.Collections.Generic; using UnityEngine; public class HelloWorld : MonoBehaviour { // Start is called before the first frame update void Start() { int[] a = { 2, 4, 6, 8, 10 }; foreach (int number in a) { Debug.Log(number); } } // Update is called once ..

2024. 4. 19. 04:03

Unity 기본5 - C# 배열에 대해

1. 배열 데이터를 저장하는 공간인 변수 그런데 데이터 하나당 변수를 하나씩 만들면 비효율적 데이터가 100개면 100개의 변수를 모두 만들어 관리하기는 어렵다. 하나의 이름으로 여러개의 데이터를 모아 저장하는 자료구조 1) 선언하는 방법? int[] a; a는 정수형의 배열 혹은 string[] a; 하면 문자열의 배열 (자료형)[] a; 해서 해당 자료형의 배열을 선언 선언만 되었지, 아무런 값도 지정되어 있지 않아 출력하면 에러남 2) 초기화가 필요함 a라는 이름을 가진 int배열에 5개의 정수가 들어갈 배열이라고 초기화 int[] a = new int[5]; 정수가 들어갈 수 있는 방 5개짜리 배열을 만들고 이름을 a라고 한다 이렇게 초기화된 상태면, 출력할때 int배열인 것을 인식함 zero b..