본문 바로가기

전체 글191

[programmers] 프로그래머스 Level2 최대값과 최솟값(파이썬 Python) [programmers] 프로그래머스 Level2 최대값과 최솟값 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 1) 문제 z https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 2) 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 def solution(s): cur_min = 2200000000 cur_max =.. 2021. 8. 29.
[TIL] 개발일지 : 코딩 학습 방법에 대한 생각(다년간 걸친 시행착오) 이 글은 다음과 같은 목차를 지니고 있다. 계속해서 추가해 나갈 목적이다. Contents -1) 편리성에 대한 생각 -2) 책으로만 학습하는 "학자"가 되어서는 안된다. -1) 편리성에 대한 생각 일반적으로 코딩테스트를 접하다 보면 간단한 표준 함수들이 등장한다. 예를들면 각 리스트에 있는 요소들의 합을 구하려고 할 때 sum()이라는 아주 고마운 함수가 있다. 하지만 이런 편한함에는 숨겨진 함정이 있다. 바로 이런 표준 함수를 이용한다면 프로그래밍 언어가 바뀌게 된다면, 그 해당 함수를 외워야 한다는 것이다. 예를 들어보자 numbers = [1,2,3,4,5] 리스트 형태로 numbers에 각 숫자가 들어가 있다. Q) 각 요소들의 합을 출력해라 numbers = [1,2,3,4,5] result .. 2021. 8. 29.
[Baekjoon] 백준 2562번 최댓값(파이썬 Python) [Baekjoon] 백준 2562번 최댓값 (파이썬 Python) * 문제출처 : 백준 알고리즘 문제 1) 문제 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 2) 코드 (1) 1 2 3 4 5 6 7 8 9 10 11 12 max_num = 0 max_idx = -1 for i in range(9): num = int(input()) if(num > max_num): max_num = num max_idx =.. 2021. 8. 29.
[자바 Java] 쉽게 이해하는 가비지 컬렉션(Garbage Collection) 개념 이 글은 가비지 컬렉션의 원리를 담은 글이 아니다. 가비지 컬렉션이라는 그림을 이해하기 위한 글이다. 자바 영역을 공부하다보면 가비지 컬렉션이라는 개념이 있다. 이 개념에을 단어의 범주안에서 풀어서 이해한다면, 쉽게 이해 할 수 있을 것이다. Garbage : 쓰레기 Collection : 수집 쓰레기(메모리에 있는 쓰레기를) 수집(알아서 수집해준다) 그렇다면 누가? JVM이라는 가상머신이 그림으로 상세히 이해하기 메모리의 힙 영역에 다음과 같은 정보들이 저장이 된다. 하지만 X라는 정보가 찌꺼기로 남아 있는 상태에서는 메모리의 입장에서 효율성이 매우 떨어질 수 밖에 없다. 이러한 메모리의 관리를 자바 가상머신(JVM)에서 Garbage Collection 이라는 개념으로 메모리를 알아서 최적화를 시켜준.. 2021. 8. 26.
[파이썬 Python] 쉽게 이해하는 continue, break continue와 break를 이해하기 전에 기초적으로 가져가야 하는건 반복문이다. 즉, 아래와 같은 그림으로 우선 가져가면 된다. [반복문] ㄴ다음단계 실행 - continue ㄴ멈춤 - break 이게 무슨 소리일까? 간단하게 전체 큰 틀의 의미를 논리로 살펴보자. 반복문을 실행을 하다 보면 1) 어느 반복 시점에서 다음 반복 시점으로 넘어가고 싶어하는 경우가 있을것이며,(계속) 2) 다음 반복문으로 넘어가기 싫을 경우가 있을 것이다.(중지) 이 두가지의 관점을 가지고 코드로 바로 살펴보자 1) continue 1 2 3 4 5 6 7 8 9 list = [1,2,3,4,5,6,7,8,9,10] sum = 0 for num in list: if num % 2 == 0: continue sum += n.. 2021. 8. 26.
[C언어] 헷갈리는 증감 연산자(++a, a++) 차이 한 번에 이해하기 C언어를 공부하다 보면, 처음에 직면하게 되는 문제가 증감연산자(전위, 후위)이다. 그럴수록 많은 사례를 보는것 보다 하나의 원리를 파고들어 이해하는게 훨씬 효과적이다. 우선 큰 원리는 아래와 같다. (1) b = a++ b = a; a = a + 1; (해설) :a를 b에다 먼저 넣고 나중에 a를 1증가 시켜야 한다. (2) b = ++a; a = a + 1; b = a; (해설) :a를 먼저 증가 시키고 그 증가시킨 a를 b에다 넣는다 코드로 살펴보자 (1) 1 2 3 4 5 6 7 8 9 10 11 #include int main() { int a = 1; int b = 2; b = a++; // a = 2, b = 1 printf("%d %d\n", a, b); } cs 초기값 a = 1 , b .. 2021. 8. 17.
[programmers] 프로그래머스 Level3 네트워크(파이썬 Python) [programmers] 프로그래머스 Level3 네트워크 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 * 왜 dfs를 이용했을까? - 일반적으로 노드에서 다음 노드로 넘어갈 노드를 찾기 위한 과정에서 쓰이는 탐색 기법은 dfs/bfs가 있다. 그 중 간선이 하나로 갈 때 경우만 보였기에 dfs를 이용하여 풀이 1) 문제 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 2) 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19.. 2021. 7. 31.
[programmers] 프로그래머스 Level3 단어 변환(파이썬 Python) [programmers] 프로그래머스 Level3 단어 변환 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 * bfs를 이용한 문제이다. 우선 문제를 보고 왜 bfs를 떠올리게 되었는지 천천히 생각해보아야 한다. bfs/dfs의 문제의 유형이기 때문에 bfs 아니면 dfs가 아니라, 문제의 어느 부분을 통해 bfs/dfs를 떠올리게 되었는지 생각해나가며 풀어나가야 한다. 1) 문제 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 .. 2021. 7. 25.
[programmers] 프로그래머스 Level2 기능개발(파이썬 Python) [programmers] 프로그래머스 Level2 기능개발 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 progress[i] + speed[i] x day >= 100 day >= 100 - progress[i] / speed[i] 를 바탕으로 문제를 해결해나가면 된다. 1) 문제 프로그래머스 level2 기능개발 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 2) 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.. 2021. 7. 20.
[Java 자바] 코딩 테스트 입문자를 위한 static 개념 static에 대한 개념을 책으로 수백번 찾아 보는것보다는 코드로 이해하는게 100배 나았던 경험이 있다. 코드로 한번에 static 개념을 이해해보자. 우선 가져가야 하는 큰 개념은 아래와 같다. ``` 1) 온라인 컴파일러(Repl.it or 프로그래머스 에서 제공하는 컴파일러 등)가 시작 함수를 main class의 main method를 지정 해야 한다. 그렇기에, 초기 프로그램 실행 시 시작 함수 (main method)를 호출해야만 한다. 2) main method가 memory에 있어야 한다. (그래야 실행되니까) 3) memory(메모리)에 있으려면? -1) static으로 선언을 하거나 -2) new Class()(생성자 형태로) ``` 형태로 만들어야 한다. 이때 클래스이름이 무조건 M.. 2021. 7. 5.