728x90

분류 전체보기 334

[Algorithm][C++] BFS/DFS

Queue와 방문노드를 체크할 배열을 이용하여 코딩할 수 있습니다. (Queue는 선입선출 구조를 갖는 자료구조로, 먼저 넣은 값을 먼저 사용합니다. 따라서 넓게 탐색해야하는 BFS로 적절한 방법입니다) 1. queue에 0번 노드를 넣습니다. int visit [] 0 0 0 0 0 queue 0 2. 한번 방문한 노드는 다시 방문하지 않기 위해 visit 배열에 현재노드를 체크합니다. int visit [] 1 0 0 0 0 0 queue 0 3. queue의 첫번째 값인 0번노드를 빼서 탐색합니다. 즉, 0번 노드의 이웃 노드인 1번, 2번 노드가 방문된 적이 있는지를 확인하고 방문한 적이 없으면 queue에 삽입하고 방문노드로 ..

[Udemy iOS & Swift Bootcamp] Delegate Design Pattern

Delegate Design Pattern? delegate. 한글로는 위임자라는 뜻이다. 즉, delegate(위임자)를 갖고 있는 객체가 다른 객체에게 자신의 일을 위임하는 형태의 디자인 패턴이다. Delegate Design Pattern의 기원? 앞서 배운 UITextField 가 수정을 시작할 때를 클래스에서 알려면 어떻게 구현해야할까? 위 그림처럼 UITextField 클래스가 클래스에게 직접 보고 해야할 것이다. 이렇게 구현한다 가정했을 때의 문제점이 많다. 가장 큰 문제는 UITextField를 만들 시점에 WeatherViewController의 존재를 모른다. 새 클래스를 만들 때마다 새 UITextField 클래스에서 계속 추가해줘야 한다. 즉, 다른 방법으로 재사용 가능하도록 어떤 ..

[Udemy iOS & Swift Bootcamp] UITextField, UITextFieldDelegate

* UITextField 생성/기본 속성 - UITextField 에도 Dark/LIght Mode가 기본적으로 적용된다. - Text Input Type을 부여할 수 있다. - Return Key 는 키보드에서 확인?버튼을 Enter나 Go 등 어떻게 보이게 할지 설정하는 거다. Default는 Return. - Sezure Text Entry는 암호필드에서 입력된 글자가 안보이게 한다. * 사용 ViewController 스크립트에 UITextField 연결해서 IBOutlet, IBAction 만들어주기 키보드 안나오면 Command + k 누르면 Keyboard 토글돼서 올라온다. * Return Key 눌렀을 때 반응하게 하기 1. UITextFieldDelegate 클래스 추가하고 UIText..

[C++][Programmers][완전탐색] 카펫

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결책] 종이에 그려가며 규칙을 찾아보려고 했는데 계속 원점으로 빙빙 돌아서 힌트를 봤다. 3x3이 가장 작은 카펫 크기(가로>=세로 이므로)라는건 구했는데 카펫이 모양이 직사각형일 때, 정사각형일 때로 나눠가며 접근해서 빙빙 돌았던거 같다. 1) 가장 작은 세로의 길이는 3 이다. 2) 노란색과 갈색 크기를 모두 합한 값이 넓이이므로 가로x세로 값과 같다. 3) 세로길이를 3부터 1씩 더하며 ..

[C++][Programmers][완전탐색] 소수찾기

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] 1) 조합으로 문자조합 뽑기 2) 1글자, 2글자, n글자씩 뽑기 3) 뽑은 수의 소수판별을 위해 문자를 int형으로 변경 4) 소수인지 판별. 소수이면 정답 개수 + 1. 이 때, 중복탐색 편리하게 하려고 unordered_set answer; 변수를 만들어서 넣었다. 5) answer 사이즈 리턴 [알아둘 것] 1) string to int 함수 #i..

[C++] 소수 판별법, 소수 개수 구하는 법

소수: 2보다 크고 자기 자신 외에 약수를 가지지 않는 수 1. 자연수 N이 소수인지 판별하는 법 : 2보다 크거나 같고, 루트N보다 작거나 같은 자연수로 나누어 떨어지지 않는지 확인하기. : 시간복잡도 루트N * 왜 루트 N 까지? 자연수 N이 소수가 아니라면 N = a X b로 나타낼 수 있습니다.(a와 b는 자연수이고 N의 약수 조합) 이 때, a > b라면 두 수의 위치를 바꿔가며 항상 a 2) { return false; } for (int i = 2; i*i> n; bool result = prime(n); cout

[C++][Programmers][완전탐색] 모의고사

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결책] 1. 1,2,3번 수포자가 표기한 답을 벡터에 저장해둔다. 2. 1,2,3번 수포자의 정답 개수를 저장할 벡터를 선언한다. vector answerNum(3); 3. answer의 길이만큼 반복문을 돌면서 정답 개수를 체크한다. 이 때, 수포자의 답 개수가 다르고 정답 개수 이하이므로 나머지 계산으로 끝까지 탐색한다. 4. 최대 정답 개수를 찾아서 answerNum 벡터에 넣어..

[C++][Programmers][완전탐색] 최소직사각형

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] 위의 예시에서 가장 작은 지갑의 크기는 80*70=5600 같지만 2번 명함을 눕히면 가로70, 세로30인 사이즈가 되므로 가장 작은 지갑의 크기는 80 * 50이다. 즉, 한쪽을 큰 값을 두고 다른 한쪽을 작은 값으로 셋팅한 후, 가로 중에 가장 큰 값과 세로 중에 가장 큰값을 뽑아야 함을 알 수 있다. 1) 2차원 벡터의 frist값(가로) > second(세로)값인 상태에..

[C++][Programmers][정렬] H-Index

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] [3, 0, 6, 1, 5] 가 있을 때 h번 이상 인용된 논문 횟수가 h개 이상이고 나머지가 h번 이하로 인용되면 된다. 즉, h = 1일 때 -> 1번 이상 인용된 논문이 1개 이상이어야 함. 나머지가 1이하로 인용되어야 함. h = 2일 때 -> 2번 이상 인용된 논문이 2개 이상이어야 함. 나머지가 2이하로 인용되어야 함. h = 3 일 때 -> 3번 이상 인용된 논문이..

[C++][Programmers][정렬] 가장 큰 수

코딩테스트 연습 고득점 Kit 정렬 파트 2번 - 가장 큰 수 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] 문제를 보고 든 생각... "조합함수로 숫자조합은 뽑을 수 있을거 같은데 숫자를 어떻게 합치지?" 였는데 return 이 string 인거 보고 걍 문자열로 합치면 되는구나~를 알았다. (오답) 1) 조합 돌리게 오름차순 정렬해놓기 2) 조합으로 숫자조합 뽑기 -----------------------> 시간초과 3..

728x90