# Pair

31개의 포스트
post-thumbnail

[구름톤 챌린지] 1주차 학습 일기 (2)

구름IDE 문제 문제 4~5 배운점 ✨ 1) ArrayList() 메소드 이번에 arraylist 메소드에 대해 자세히 알게 되었다. > 참고) ArrayList는 인덱스 기반의 데이터를 관리하고 있으며, 순서가 존재한다. 동적으로 크기가 변경될 수 있기 때문에데이터를 나누고, 정렬하고 합치는 문제에서는 적합한 자료형이다. ArrayList는 아래처럼 선언할 수 있고, 다음과 같은 메소드를 제공하고 있다. add(E e) : 리스트의 마지막에 원소를 추가 add(int index, E element) : 지정한 인덱스에 원소를 추가 remove(int index) : 지정한 인덱스의 원소를 삭제 get(int index) : 지정한 인덱스의 원소를 반환 set(int index, E element): 지정한 인덱스의 원소를 새 원소로 대체

2023년 8월 22일
·
0개의 댓글
·
post-thumbnail

[백준] 2341_풍선 터뜨리기_C++

📌 문제 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다. 각 풍선 안에는 종이가 하나 들어있고, 종이에는 -N보다 크거나 같고, N보다 작거나 같은 정수가 하나 적혀있다. 이 풍선들을 다음과 같은 규칙으로 터뜨린다. 우선, 제일 처음에는 1번 풍선을 터뜨린다. 다음에는 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다. 양수가 적혀 있을 경우에는 오른쪽으로, 음수가 적혀 있을 때는 왼쪽으로 이동한다. 이동할 때에는 이미 터진 풍선은 빼고 이동한다. 예를 들어 다섯 개의 풍선 안에 차례로 3, 2, 1, -3, -1이 적혀 있었다고 하자. 이 경우 3이 적혀 있는 1번 풍선, -3이 적혀 있는 4번 풍선, -1이 적혀 있는 5번 풍선, 1이 적혀 있는 3번 풍선, 2

2023년 8월 16일
·
0개의 댓글
·
post-thumbnail

Useful STL - Pair에 대하여

추후에 학습할 Graph, 그 그래프를 활용한 완전 탐색 알고리즘인 BFS/DFS를 응용하여 문제 풀이를 하다보면 2차원 배열을 좌표처럼 사용하거나 이해한 상태로 진행해야 유리할 때가 매우 많다. 언제까지나 arrn형태로 작성하기는 귀찮을 뿐더러도 직관적으로 잘 와닿지 않기에 소개할 STL인 Pair를 적극적으로 사용하면 좋은 듯하다. 1. 헤더파일 pair를 사용하기 위해서는 utility 헤더파일을 include 해주면 된다. 2. 사용법 선언방식과 좌표처럼 사용하는 방법 2가지 pair뜻처럼 쌍으로 데이터를 처리하기 위해서 pair를 사용하기 때문에 선언 시에 두 가지 자료형을 함께 안에 표현해줘야 한다. (보통 좌표 사용시에 pair를 쓰기에 int,int로 예시를 든다) 또한, 첫번째, 두번째 데이터에 각각 접근하기 위해서 first,second를 사용한다는 점도 기억하며 좋다! 위와 다르게 make_pair(data1, data

2023년 7월 18일
·
4개의 댓글
·

[백준] 17298번 오큰수 (C++)

백준 17298번 오큰수 ✍ 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. ✍ 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. ✍

2023년 4월 6일
·
0개의 댓글
·
post-thumbnail

Pair

첫 pair 실습이 있던 날이다. pair 실습은 랜덤으로 정해지는 동기와 함께 협업을 하는 시간이다. 혼자하는 실습이 아니기 때문에 민폐가 되지 않도록 지난 밤 늦게 까지 공부를 했다. mock-up(모형) 사이트를 구현하는 작업이었는데 처음으로 예시를 따라하지 않고 직접 생각하며 코드를 작성했다. HTML로 틀을 구상하고 CSS로 각각의 id나 class에 디자인을 지정하는 기초적인 수준의 실습이었지만 쉽지 않았다. 완전히 이해했다고 생각했는데, 직접 코드를 작성해보니 내가 무엇을 모르는지 알게 되었다. 자료를 뒤적이고 구글링을 해도 이해할 수 없는 부분이 많았지만 최대한 가능한 데까지 공부를 했다. 걱정이 많았던 pair 실습 시간이 되었다. 지난 밤에 미리 실습을 해본 덕분인지 생각보다 수월하게 진행되었다. 어려웠던 부분도 생각보다 무난하게 지나갔고, 손을 댈 엄두가 나지 않던 코드는 우여곡절 끝에 완성할 수 있었다. 막히는 곳에서는 함께 생각해보고 여러

2022년 8월 26일
·
0개의 댓글
·

[Section 1]2022.08.25 - Twittler 목업 구현(Pair)

📙Twittler 목업 구현 ✔새롭게 알게된 부분 & 헷갈리는 부분 (1) Flaxbox 공부랑 실제랑은 달랐다. 코드에 직접 적용해보려고 하니 생각이 나질 않았다👀 (2) 부정 셀렉터 li:not(:nth-child(0)) (3)textarea 크기 고정 resize: none; (4) padding / margin / shadow 등 값 갯수에 따라 방향 4개 - 상 우 하 좌 3개 - 상 (좌/우) 하 2개 - (상/하) (좌/우) 📢220825 회고 오늘은 Twittler 목업 구현을 진행했다. 페어 프로그래밍은 처음 해봤는데 혼자 하는 것보다 훨씬 수월했다. 혼자 했으면 시간이 두 배는 더 걸렸을 거 같았다😂 드라이버로 진행했는데 페어님이 도움을 많이 주셔서 금방 끝내고 몰랐었던 부분을 점검했지만... 아직 부족한 것 같다. 복습합시다 💪 이번주는 내일만 힘내자!

2022년 8월 25일
·
0개의 댓글
·

[C++ STL] 참고지식

백준의 "강의실 배정" 문제를 풀면서 이전에 생각하지 못한 STL 사용법을 알게되어 작성하게 되었다. stack, queue, vector와 같이 특정 주제가 있다기 보단, 코드를 작성하는 과정에서 '이게 될까?' 싶었던 부분에 대해 알게된 내용을 작성하려고 한다. 시간복잡도 sort 함수 : O(NlogN) priority_queue : O(logN) 이전에는 편의상 sort 함수를 그냥 썼지만, "강의실 배정" 문제를 푸는 과정에서 O(NlogN)의 시간복잡도를 만족하기 위해 처음으로 찾아보게 됐다. sort 함수의 경우, 입력의 크기가 매우 큰 경우에는 사용을 할 수 없을 것 같다. 또한, priority_queue의 경우 트리를 구성하는 성분의 수 N에 따라서 push 혹은 pop이 발생할 때 O(logN)의 연산 횟수를 갖는 것을 알 수 있었다. 특히, priority_queue에 대해 좀 더 친숙해져서 "강의실 배정"과 같은 문제에서 자연스럽게 응용할

2022년 7월 1일
·
0개의 댓글
·

[cpp] pair 클래스 다루기

Pair 클래스 사용자가 지정한 2개의 타입의 데이터를 저장하는데 사용합니다. 서로 연관된 2개의 데이터를 한 쌍으로 묶어서 다룰 때 사용하면 편리합니다. 사용법

2022년 6월 9일
·
0개의 댓글
·
post-thumbnail

백준(baekjoon)-C++ 정리

5575 타임 카드 시간, 분, 초의 배열을 각각 만들어서 a,b,c씨의 출근시간들을 각각 입력받고, 퇴근 시간을 따로 입력받은 후, 둘을 뺄셈하여 저장(총 일한시간) -> 이 때, 초와 분의 뺄셈하여 나온 값이 0보다 작은 경우에는 60을 더한 후에, 초인 경우에는 분에 -1, 분인 경우에는 시간에 -1 결과 출력 5596 시험 점수 입력받은 값을 더한 총합을 비교하여 큰 값을 출력 7568 덩치 ![](https://ve

2022년 5월 2일
·
0개의 댓글
·

백준 1946번: 신입 사원

백준 1946번: 신입 사원 기준을 정해주고 그 기준을 통해서 그리디를 해결 해야겠다는 생각이 들었다. 그래서 기준을 서류 심사 등수로 지정 하는 코드를 구상하였다. 근데 어떤 자료구조를 쓸지 고민을 하다가 2차원 배열로는 정렬을 해주는 sort()함수를 못 쓸 것 같아서 서류와 면접 등수를 같이 가져갈 수 있도록 쌍으로 값을 가져오길 바랐다. 기억을 더듬어 벡터가 그런 역할을 해주었던 것 같아서 찾아보니 pair를 사용하면 편리할 듯 했다. 그래서 pair를 이용하여 코드를 완성해주었다. 자료구조만 알았다면 1분 안에도 쉽게 짤 수 있는 문제 였던 것 같다. 여러 가지 자료구조를 배운지 너무 오래되어서 기억에 일부분만 남아있는 느낌이었다. 그래서 열심히 복기 해야겠다고 다짐했다. 그리

2022년 4월 1일
·
0개의 댓글
·

2580번

1.문제 2.풀이 빈칸(0)에만 숫자를 넣고 유효성 검사를 해야하므로 빈칸의 인덱스를 배열에 기록해둔다. 1-1.이를 위해 좌표쌍을 가진 point라는 int형 pair를 선언, points라는 배열에 넣어준다. cnt변수에 0의 갯수를 기록해둔뒤, 재귀함수를 돌때마다 size변수의 크기를 0부터 증가시켜 cnt == size가 될때 즉, 모든 스도쿠 판이 채워질경우 종료한다. 1부터 9까지 for문을 돌며 빈칸에 넣어 check를 통해 유효성 검사를 한다. 3-1. 만약 유효성 검사를 통과한다면 해당 좌표에 알맞은 숫자가 들어간것이므로 스도쿠판에 숫자를 넣어주고 size를 증가시켜준다. 3-2.만약 유효성 검사를 통과하지 못했다면 계속해서 for문을 돌게되고 만약 9까지

2022년 3월 13일
·
0개의 댓글
·

Pair

C/C++의 구조체처럼 JAVA에서도 변수들의 집합을 사용하여 Pair(짝)처럼 활용하여 알고리즘 풀 때 도움이 된다. C의 구조체 활용 java의 클래스활용 관련문제 https://programmers.co.kr/learn/courses/30/lessons/42586?language=java 풀이 https://github.com/chogyujin/algorithm/blob/1b1a5043b72d69aeab52143a76beec8ae29827a6/programmers/004.%20%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C.md

2022년 2월 6일
·
0개의 댓글
·
post-thumbnail

군대에서_코딩하기_알고리즘_28

STL pair에 관한 설명 > vector > graph[3]; 이렇게 선언하게 되면 (int형, int형) 을 가진 graph라는 벡터가 생겨난다. 또한 [3]으로 선언을 해주었으므로, 이중? 벡터라고 생각하면 편하다. 이렇게 할 경우 아래와 같은 pair vetor가 생긴다. 그리고 결과는 7 과 7 이 출력된다. 오늘의 첫번째 문제 저번에 올렸던 경로 탐색과 똑같은 문젠데, 이번에는 인접리스트를 사용해서 푸는 것이다. 인접리스트란? > -> 그래프의 각 정점에 인접한 정점들을 '연결 리스트'로 표현한 것이다. ![](https://images.velog.io/images/shintaewon/post/152ba848-dc1f-484f-9

2022년 2월 2일
·
0개의 댓글
·

Utils

less Node pair & make_pair lexicographical_compare 두 구간의 대응되는 요소를 차례대로 비교하는데 첫 번째 요소가 두 번째 요소보다 작으면 true를 리턴하고 크면 false를 리턴하며 즉시 종료한다. 만약 같다면 다음 요소를 똑같은 방식으로 계속 비교하기를 구간끝까지 반복한다. 디폴트 비교 함수 객체가 less이므로 첫 번째 구간이 두 번째 구간보다 작아야만 true를 리턴하며 같을 경우는 작지 않으므로 false가 리턴된다. 만약 첫 번째 구간이 먼저 끝나고 두 번째 구간은 아직 값이 남았으면 이 경우는 true를 리턴한다.

2021년 11월 29일
·
0개의 댓글
·

Map

map은 이진탐색 트리로 구현됨 key와 value로 구성됨 >> std::pair사용(구현) compare 키 값 비교를 통해 hashmap의 요소를 비교하여 hashmap 내의 상대 순서를 확인할 수 있는 함수 개체를 제공합니다. std::less 두개의 인자를 받아 왼쪽이 오른쪽보다 작은지를 true false 로 반환한다. 멤버 타입 private tree_type self tree 함수 construct destructor operator= - Iterators begin / end / rbegin / rend - Capacity size =

2021년 11월 4일
·
0개의 댓글
·
post-thumbnail

[C++] 백준 알고리즘 풀이: 5635

📄 문제 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. 📝 입력 첫째 줄에 반에 있는 학생의 수 n이 주어진다. (1 ≤ n ≤ 100) 다음 n개 줄에는 각 학생의 이름과 생일이 "이름 dd mm yyyy"와 같은 형식으로 주어진다. 이름은 그 학생의 이름이며, 최대 15글자로 이루어져 있다. dd mm yyyy는 생일 일, 월, 연도이다. (1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31) 주어지는 생일은 올바른 날짜이며, 연, 월 일은 0으로 시작하지 않는다. 이름이 같거나, 생일이 같은 사람은 없다. 📥 input 📤 output 💡 풀이 방법 처음엔 string으로 년+월+일 합쳐서 sort 하려고 했습니다. 근데 예시가 09월이었으면 가능했을텐데 월,일에 0이 없어서 예외처리로 10 이하일 때 0 붙일까 하다가...

2021년 11월 2일
·
0개의 댓글
·
post-thumbnail

[Kotlin] Infix Function 이 뭐게?

Infix Function 코틀린을 사용하다보면 아래와 같이 Pair 객체를 만들어주는 경우가 많다. 그런데 to 가 키워드 하이라이팅되는 것을 보면, 그냥 쓰는 구문이 절대 아니고 어떤 동작을 하는 것이 분명하다. 내부 구현을 들여다보면, 아래와 같다. 제너릭으로 두 개 객체를 받고, A의 확장함수를 만들어 주고 A와 B를 엮어서 Pair 형태로 만들어 반환해주는 코드가 내장되어 있다. 이러한 구문을 사용하면 확실히 코드가 훨씬 간결해지고, 가독성이 향상되는 것을 확인할 수 있다. 코틀린에서 Map 을 만들때, 더욱 차이점을 명확히 느낄 수 있다. >코틀린에서는 두 개의 객체 중간에 들어가게 되는 함수 형태를 Infix Function 이라고 부른다. 뭔지는 알았으니까, 한 번 직접 만들어보자. 생각보다 정말 간단하다! ![](https://images.velog.io/images/h

2021년 10월 22일
·
0개의 댓글
·
post-thumbnail

하루를 마치며

오늘은 부트캠프가 시작된지 3일차이다.... 지금 이 글을 쓰는 이 시각은 23시 55분. 곧 12시가 넘어갈 것 같다. 오늘 일정은 pair와 조건문과 문자열 관련 문제를 풀었다.... 역시 둘째날의 문제는 쉬워도 너무 쉬웠다... pair와 같이 문제를 풀다가 모르는 문제가 나왔다... 쉽사리 생각나지 않아 많은 시간이 지체되어 pair에게 누가 될까 너무 걱정된다... 괜찮다고 하지만 미안하고.....그로인해 더 머리가 돌아가지를 않는다... 저녁에 시간을 가지고 푸니 시간은 걸려도 풀리긴 하는데... 멘탈 관리 중요한 것 같다.. TIL은 정리하기 힘들것 같다... 나중에 복습하며 적어야 겠다... 오늘 줌을 활용해 푼 몇개의 문제의 풀이를 하며 알게된 티끝 > () 함수를 선언할때와 함수를 호출 할때 사용된다. 변수를 할당할때 ()는 사용하지 않는다. 수도코드 또 나왔다. 컴퓨터에 감정이입 해 봐라! 참고!! ![](https:

2021년 7월 21일
·
0개의 댓글
·

Today I Learned

변수 >### 선언(Declaration) 변수(Variable)는 이름이 붙은 저장소. 변수는 컴퓨터 메모리에 자리를 잡게 되고, 자리 잡는 동작을 변수 선언(Declaration)이라 한다. >### 할당(Assignment) 어떤 값(value)를 넣을 수 있는 자리를 컴퓨터 메모리에 미리 잡아두었다 = 선언; 잡아둔 메모리에 값을 넣는것 = 할당; 자료형 >### 문자열

2021년 7월 20일
·
0개의 댓글
·

Git Pair commit~!(TIL0416)

오늘은 깃을 통해서 협업의 기본을 실습해보았다. 음 .. 이해는 되는데 적용이 어려웠는데 계속 만져보니까 별로 어려운건 없는것 같다. 해결이 안되면 --help와 같은 git 명령어 옵션에서 찾아보면되고 오늘 겪은 내 remote repo에 접근이 안되는 경우에는 검색해서 찾아보니 keychain에 내 github 정보가 이상하게 입력되어있어서 그랬었다. 그래서 다 삭제하고 다시 push하니 내 remote repo로 push가 되어 내 깃헙에서도 내가 깃으로 푸쉬한 결과물을 잘 확인 할 수 있게 되었다. 그리고 페어와 함께 modified 하고 merge 충돌을 일으켜서 merge를 해결하는 방법까지 진행해 보았다.(사실은 현재진행형)

2021년 4월 16일
·
0개의 댓글
·