목록전체 글 (149)
굥의 컴공일지
https://school.programmers.co.kr/learn/courses/30/lessons/12939 내가 생각했던 방법 / 풀이 처음에 고민을 했던게 배열 선언방식을 꼭 ' ex_ String[] myArray = new String[5]; ' 이런형태로만 생각했다. (처음에 꼭 배열이 몇개인지 선언하는..) 근데, 배열 선언방식중에 ' ex_ String[] myArray = {"value1", "value2", "value3"}; ' 이런형식으로 선언과 함께 초기화를 하면 이 개수만큼 배열이 초기화되며 생성된다. 그래서 문제를 풀었던 방식은, 입력을 문자열 하나로 입력을 받는다. 이를 나는 문자열 배열을 통해 공백을 기준으로 문자열 하나하나로 저장을 했다. 첫 문자를 max이자 min..
https://school.programmers.co.kr/learn/courses/30/lessons/86051 내가 생각했던 방법 / 풀이 일단 배열을 하나 만들어 해당 수가 있는 부분을 boolean을 사용하거나 숫자를 사용해서 판별할 수 있게한다.마지막으로 배열 전체를 검사하면서 해당 수가 없는 부분만 더하도록한다. 코드class Solution { public int solution(int[] numbers) { int answer = 0; int[] check = new int[10]; for(int i=0; i다른 답class Solution { public int solution(int[] numbers) { int sum = 4..
원형연결리스트: 연결 리스트의 마지막 노드의 링크가 첫 번째 노드를 가리키게 하여 리스트의 끝과 처음이 연결된 형태의 자료구조 - 한 노드에서 다른 모든 노드로의 접근 가능- 헤드포인터가 마지막 노드를 가리킴장점 : 마지막 노드에 바로 접근이 가능하고, 마지막 노드에서 하나 이동하면 바로 처음노드에 접근이 가능해짐 (상수시간 접근가능) EX_7.1_원형연결리스트 예제#include #include typedef int element;typedef struct ListNode { element data; struct ListNode *link;} ListNode;ListNode* insert_first(ListNode* head, element data) { ListNode *node =..
[ 중간고사 ] 1. 시험은 4지선다로 쉬웠음.. 심지어 너무 쉬웠음ex) 알고리즘 조건 5개 알려주길래 하나하나 부가설명까지 외워가고, 시험에는 '알고리즘 5가지 조건을 쓰시오' 이럴 줄 알았는데그냥 4가지주고 (설명도 없음 ) 선택하는 문제였음.2. 코드관련 문제 하나도 안나옴, 수업에는 코드를 그렇게 많이 알려줬는데 하나도 없음...3. 근데 내가 멍청해서 응용을 못함→ 응용하는 문제는 코드 메서드 작성형태로 나왔는데 기존 알려준 코드에 없는 내용 → 3문제가 코드 쓰는 문제였음. 근데 지금보니 한문제는 맞았고 두문제 틀림. 나머지 선택하는 문제는 틀릴리가 없음. 나머지 문제는 헷갈렸던 건 있는것 같은데 기억이 안남. 응용 3문제 1. 1+2+3...+(n-1)+n 을 순환호출을 이용해 코드를 ..
https://school.programmers.co.kr/learn/courses/30/lessons/12903 내가 생각했던 방법 / 풀이 처음에 풀때는 substring 개념이 확실하지 않아 계속 틀렸다. 개념을 정리하면서 정확하게 찾아보고서는 바로 풀었다.일단 문자열의 길이를 구하고 2로 나눠 가운데 수를 구한다. (ex5/2=2, 4/2=2가 나옴)이때 문자열의 인덱스는 0부터 시작한다 (주의!)substring은 (시작인덱스, 끝인덱스) 이렇게 매개변수를 줄 때 시작인덱스는 포함이 되지만 끝 인덱스는 포함이 되지 않는다. 따라서 홀수일경우에는 2로 나눈 수 그대로 출력하고, 짝수는 나눈수 -1부터 +1까지 인덱스를 범위를 줘서 출력한다. 개념substring: 문자열(String)에서 특정..
https://school.programmers.co.kr/learn/courses/30/lessons/12912 내가 생각했던 방법 / 풀이입력은 int형이지만 answer은 long형이라 형변환 부분에서 틀린적이 많아 주의했다.a가 작은수 b가 큰수로 해서 그 사이 값을 더하도록 했다. 코드를 길게 쓰면 min과 max를 써서 큰수와 작은 수를 구별한 뒤 계산했다.코드 1class Solution { public long solution(int a, int b) { long answer = 0; long min =0; long max =0; if(a>b){ max = (long)a; min = (long)b..
리스트: 여러 항목들을 차례대로 저장되어 있는 것 리스트 ADT객체 : n개의 element형으로 구성된 순서있는 모임연산insert(list,pos,item) : pos위치에 요소 추가insert_last(list,item) : 리스트 끝에 요소 추가insert_first(list,item) : 리스트 처음에 요소 추가delete(list,pos) : pos 위치의 요소를 제거clear(list): 리스트의 모든 요소를 제거get_entry(list,pos): pos위치의 요소를 반환get_length(list): 리스트의 길이 구함(=요소의 개수)is_empty(list): 리스트가 비었는지is_full(list): 리스트가 꽉 찼는지print_list(list): 리스트의 모든 요소를 출력배열로 구..
큐(QUEUE): 먼저 들어온 데이터가 먼저 나가는 자료구조선입선출(FIFO: First-In First-Out) 큐 메서드create(max_size)init(q)is_empty(q)is_full(q)enqueue(q, e) : q의 끝에 e를 추가한다dequeue(q) : q의 맨 앞 e를 제거해 반환peek(q) : q의 맨 앞 e를 읽어 반환선형큐: 배열을 선형으로 사용해 큐를 구현- 실제로 선형큐 사용X, 원형큐를 사용- 단점 : 데이터를 삭제해도 생긴 빈 공간을 재활용하지 못함- 큐를 전단과 후단을 관리하기 위해 2개의 변수 필요/ front : 첫번째 요소 앞의 인덱스, rear : 마지막 요소의 인덱스 EX_5.1_선형큐 예시#include #include #define MAX_QUEUE_..
스택(stack): 데이터를 차곡차곡 쌓아 올린 형태의 선형 자료구조◎ 후입선출(LIFO) : 가장 최근에 들어온 데이터가 가장 먼저 나감 스택의 구조 스택 메서드create(size) : 스택 생성is_full(s) : 스택이 다 찼는지 검사is_empty(s) : 스택이 비었는지 검사 push(s, item) : 스택의 맨위에 요소 추가 pop(s) : 스택의 맨 위 요소를 제거해 반환함peek(s) : 스택의 맨 위 원소를 제거하지 않고 반환만 함 EX_4.1_배열을 이용한 스택 구현- 1차원 배열 stack[ ], top 변수 (스택의 맨 위 요소를 가리키도록 함, 현재 있는 요소를 가리킴)- 가장 먼저 들어온 요소는 stack[0], 가장 최근에 들어온 요소는 stack[top]- 스택..
https://school.programmers.co.kr/learn/courses/30/lessons/12934 내가 생각했던 방법 / 풀이자료형에 주의하며 풀었다. 변수 m 에 제곱근의 수를 넣었다. 이때 ex_3숫자도 double형태로 제곱근이 나온다. 이런 숫자들과 구별하기 위해 if문을 사용해 나머지가 없는경우에만 답을 내도록했다. 그 외는 -1을 반환하도록 했다. 개념자바 - 제곱근- java.lang.math 클래스에 있다. 모든 메서드가 정적메서드라 바로 사용이 가능하다 1. Math.pow(double a, double n): aⁿ 을 반환한다 2. Math.sqrt(double a): a의 제곱근을 반환한다. double형태로 반환한다.- 0 이면 0을 반환, 음수 & NaN은 Na..