반응형
스택을 사용하여 주어진 숫자들중 중복된 숫자를 삭제하는 프로그램입니다. 아주 간단한 코드죠
Input:
10
5 3 1 1 8 3 1 5 2 9
Output:
5->3->1->1->8->3->1->5->2->9->NULL
5->3->1->8->2->9->NULL
#include<stdio.h>
#include<stdlib.h>
typedef struct _Node{
int data;
struct _Node* next;
}Node;
void printList(Node* head){
Node* ptr = head;
while(ptr){
printf("%d",ptr->data);
printf("->");
ptr = ptr->next;
}
printf("NULL");
printf("\n");
}
void push(Node** head, int data){
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
void Remove(Node* head){
int arry[100] = {0,};
Node* now = head->next;
arry[head->data]++;
Node* rnode;
int i;
while(now){
arry[now->data]++;
if(arry[now->data] >= 2){
rnode = now;
now = now->next;
head->next = now;
free(rnode);
}
else{
head = head->next;
now = now->next;
}
}
}
int main(){
int N,list[100];
scanf("%d",&N);
for(int i = 0;i<N;i++){
scanf("%d",&list[i]);
}
Node* head= NULL;
for(int i = N-1;i>=0;i--){
push(&head,list[i]);
}
printList(head);
Remove(head);
printList(head);
return 0;
}
반응형
'코테 문제' 카테고리의 다른 글
[아무문제] 정해진 그룹으로 역출력하는 프로그램 (5) | 2020.04.24 |
---|---|
[백준] 2562번: 최댓값 (0) | 2020.04.22 |
[아무문제] Pseudo-Palindrome Checker2 (0) | 2020.04.21 |
[아무문제] Pseudo-Palindrom checker (0) | 2020.04.21 |
[백준] 2941번: 크로아티아 알파벳 (0) | 2020.04.17 |
댓글