[프로그래머스] 방문 길이 - Java(자바)
·
자바/코딩테스트
문제 이해 좌표문제로 좌표 범위는 -5 ~ 5까지로 해당 범위를 나가면 안된다. 문자열은 상하좌우를 뜻하는 LRUD가 있다. 문제의 핵심은 좌표범위를 벗어나지 않고 처음가는 길인곳의 길이를 구하는것이다. A -> B == B -> A 두개의 길은 같은길로 처리한다. 리스트에 좌표를 움직이기 전 좌표 + 움직인 후 좌표, 움직인 후 좌표 + 움직이기 전 좌표 로 두가지 경우를 둘다 넣어 문자열로 담아놨다. indexOf를 사용하여 리스트에 존재 하지 않으면 처음 가는길로 간주했다. import java.util.*; class Solution { public int solution(String dirs) { List visit = new ArrayList(); int answer = 0; int[] poi..
[프로그래머스] [1차] 캐시 - Java(자바)
·
자바/코딩테스트
문제 이해 LRU(Least Recently Used) 알고리즘으로 캐시에 데이터를 할당할때 캐시가 꽉차면 최근에 사용안한 캐시를 지우는 알고리즘이다. 도시의 이름은 대소문자 가리지 않는다. toUpperCase() 사용 캐시를 List 객체를 사용하여 캐시에 같은 도시명이 존재하면 해당 리스트 index 삭제후 맨뒤에 도시 추가 실행시간 +1 리스트에 존재하지 않으면 실행시간 +5 캐시에 데이터가 존재하는지 확인하는 함수 생성 exitsCache(); import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { int answer = 0; List cache = new ArrayList(); if(ca..
[프로그래머스] 멀리 뛰기 - Java(자바)
·
카테고리 없음
문제 이해 멀리 뛰기 방법을 구하는것 같지만 피보나치 수열을 나타낸다. 1, 2, 3 ,5 ,8 ,13 ~~ n 은 (n-2) + (n-1) 처럼 증가한다. 나온 방법에서 %1234567 의 나머지를 구하여라 import java.util.*; class Solution { public int solution(int n) { List list = new ArrayList(); list.add(1); list.add(2); //1, 2 ,3, 5 for(int i = 2; i
삽입정렬 및 계수정렬 파이썬
·
파이썬/코딩테스트
삽입정렬의 경우 시간복잡도가 중첩이 두번돌아 n제곱이지만 정렬이 거의 되어있다는 가정이면 퀵정렬보다빠른 O(N)의 속도를 가질수도 있다. 그러므로 데이터를 잘보고 정렬알고리즘을 선택할 필요가 있다. # 삽입정렬은 선택정렬과 같은 시간 복잡도를 가졌지만 거의 정렬되어있는 상태라면 삽입정렬이 빠르다. array = list(map(int, input().split())) for i in range(1, len(array)): for j in range(i, 0, -1): if array[j] < array[j-1]: array[j], array[j-1] = array[j-1], array[j] else: break print(array) 계수정렬 # 계수정렬 모든 원소의 값이 0보다 크커나 같다고 가정 ar..
대전집주인
'리스트' 태그의 글 목록